From 9b899b5205835aa3d93dd185726b3951db30a953 Mon Sep 17 00:00:00 2001 From: Amit Haridas Date: Mon, 8 Jun 2026 06:43:40 +0530 Subject: [PATCH] feat(renderer): mount UpdateBanner, FirstRunWizard, and CrashReportModal --- src/renderer/App.tsx | 4 ++++ src/renderer/components/modals/ModalLayer.tsx | 3 +++ src/renderer/stores/app-store.ts | 9 ++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 50a418b..1cef8eb 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -4,6 +4,8 @@ import { ModalLayer } from './components/modals/ModalLayer'; import { Toaster } from './components/ui/sonner'; import { ReplPanel } from './components/tools/ReplPanel'; import { PrintPreview } from './components/tools/PrintPreview'; +import { UpdateBanner } from './components/UpdateBanner'; +import { FirstRunWizard } from './components/FirstRunWizard'; import { useWelcomeTrigger } from './hooks/use-welcome-trigger'; function App() { @@ -21,6 +23,8 @@ function App() { + + {printOpen && setPrintOpen(false)} />} diff --git a/src/renderer/components/modals/ModalLayer.tsx b/src/renderer/components/modals/ModalLayer.tsx index 3d874a7..afc032e 100644 --- a/src/renderer/components/modals/ModalLayer.tsx +++ b/src/renderer/components/modals/ModalLayer.tsx @@ -2,6 +2,7 @@ import { useAppStore } from '@/stores/app-store'; import { AboutDialog } from './AboutDialog'; import { AsciiGeneratorDialog } from './AsciiGeneratorDialog'; import { ConfirmDialog } from './ConfirmDialog'; +import { CrashReportModal } from './CrashReportModal'; import { ExportBatchDialog } from './ExportBatchDialog'; import { ExportDocxDialog } from './ExportDocxDialog'; import { ExportHtmlDialog } from './ExportHtmlDialog'; @@ -41,5 +42,7 @@ export function ModalLayer() { return ; case 'find-in-files': return ; + case 'crashReports': + return ; } } \ No newline at end of file diff --git a/src/renderer/stores/app-store.ts b/src/renderer/stores/app-store.ts index e5de0c3..e2e74c5 100644 --- a/src/renderer/stores/app-store.ts +++ b/src/renderer/stores/app-store.ts @@ -30,7 +30,8 @@ export type ModalState = | { kind: 'export-word'; props: { sourcePath: string } } | { kind: 'ascii-generator' } | { kind: 'table-generator' } - | { kind: 'find-in-files' }; + | { kind: 'find-in-files' } + | { kind: 'crashReports' }; export type ModalKind = ModalState['kind']; @@ -40,6 +41,7 @@ interface AppState { zenMode: boolean; paneSizes: PaneSizes; modal: ModalState; + firstRun: boolean; toggleSidebar: () => void; togglePreview: () => void; setZenMode: (value: boolean) => void; @@ -49,6 +51,8 @@ interface AppState { ...args: Extract extends { props: infer P } ? [props?: P] : [] ) => void; closeModal: () => void; + setFirstRun: (value: boolean) => void; + newBuffer: (content?: string) => void; } export const useAppStore = create()( @@ -59,6 +63,7 @@ export const useAppStore = create()( zenMode: false, paneSizes: { sidebar: 20, editor: 50, preview: 30 }, modal: { kind: null }, + firstRun: true, toggleSidebar: () => set((s) => ({ sidebarVisible: !s.sidebarVisible })), togglePreview: () => set((s) => ({ previewVisible: !s.previewVisible })), setZenMode: (value) => set({ zenMode: value }), @@ -69,6 +74,8 @@ export const useAppStore = create()( return { modal: candidate }; }), closeModal: () => set({ modal: { kind: null } }), + setFirstRun: (value) => set({ firstRun: value }), + newBuffer: (_content?: string) => set({ firstRun: false }), }), { name: 'mc-app-store',