diff --git a/src/App.svelte b/src/App.svelte index 87c26f1..7cac87d 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -10,9 +10,9 @@ import { USD_CONVERSION_MARKETS } from '@lib/config' import { checkCountry, loadRoute, catchLinks, navigateTo } from '@lib/routing' - import { component, address, pageName, countryDisallowed } from '@lib/stores' + import { component, address, pageName, countryDisallowed, activeModal } from '@lib/stores' import { hidePopoversOnKeydown, hidePopoversOnClick } from '@lib/ui' - import { runAndInterval, hashString, getChainData } from '@lib/utils' + import { runAndInterval, hashString, getChainData, getUserSetting } from '@lib/utils' import { getUserAssetBalances } from '@api/assets' import { listenToEvents } from '@api/listener' @@ -31,6 +31,15 @@ window.onpopstate = () => loadRoute(); getMarketPrices('all'); + + // Show welcome modal for first-time users + const welcomeShown = getUserSetting('welcomeShown'); + if (!welcomeShown) { + // Small delay to let the app initialize + setTimeout(() => { + activeModal.set({ name: 'Welcome' }); + }, 500); + } }); onDestroy(() => { diff --git a/src/components/layout/Modals.svelte b/src/components/layout/Modals.svelte index 03b829d..2a52352 100644 --- a/src/components/layout/Modals.svelte +++ b/src/components/layout/Modals.svelte @@ -14,6 +14,7 @@ import UnstakeCAP from '../modals/UnstakeCAP.svelte' import HistoryOrderStatus from '../modals/HistoryOrderStatus.svelte' import Settings from '../modals/Settings.svelte' + import WelcomeModal from '../modals/WelcomeModal.svelte' @@ -67,4 +68,8 @@ {#if $activeModal && $activeModal.name == 'MarketInfo'} -{/if} \ No newline at end of file +{/if} + +{#if $activeModal && $activeModal.name == 'Welcome'} + +{/if} diff --git a/src/components/modals/WelcomeModal.svelte b/src/components/modals/WelcomeModal.svelte new file mode 100644 index 0000000..619707b --- /dev/null +++ b/src/components/modals/WelcomeModal.svelte @@ -0,0 +1,548 @@ + + + + +