From b39bdcf4758113d35f1a13d9aa1136e7873f7ac8 Mon Sep 17 00:00:00 2001 From: Amit Haridas Date: Fri, 5 Jun 2026 19:48:37 +0530 Subject: [PATCH] feat(renderer): mount ModalLayer + first-launch welcome trigger --- src/renderer/App.tsx | 13 ++++++++++--- src/renderer/hooks/use-welcome-trigger.ts | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/renderer/hooks/use-welcome-trigger.ts 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'); + } + }, []); +}