diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index e19bf8c..4f27a5c 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -1,7 +1,14 @@ import { AppShell } from './components/layout/AppShell'; +import { ModalLayer } from './components/modals/ModalLayer'; +import { useWelcomeTrigger } from './hooks/use-welcome-trigger'; function App() { - return ; + useWelcomeTrigger(); + return ( + <> + + + + ); } - -export default App; \ No newline at end of file +export default App; diff --git a/src/renderer/hooks/use-welcome-trigger.ts b/src/renderer/hooks/use-welcome-trigger.ts new file mode 100644 index 0000000..a931720 --- /dev/null +++ b/src/renderer/hooks/use-welcome-trigger.ts @@ -0,0 +1,15 @@ +import { useEffect } from 'react'; +import { useAppStore } from '@/stores/app-store'; +import { useSettingsStore } from '@/stores/settings-store'; + +/** + * On first mount, if the user hasn't dismissed the welcome dialog, open it. + * Call once at the top of App.tsx. + */ +export function useWelcomeTrigger() { + useEffect(() => { + if (!useSettingsStore.getState().welcomeDismissed) { + useAppStore.getState().openModal('welcome'); + } + }, []); +}