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'}