@@ -14,17 +14,18 @@ import DashboardView from "@/views/dashboard";
1414import { useVideoStore } from "@/stores/videoStore" ; // Import the Zustand store
1515import VideoModal from "@/components/video-modal" ;
1616import { Video } from "@/types/video" ;
17- import { Toaster } from "./components/ui/toaster" ;
18- import ScheduleView from "./views/schedule" ;
19- import IdeaBank from "./views/idea-bank" ;
20- import { useIdeaBankStore } from "./stores/ideaBankStore" ;
21- import { Idea } from "./types/idea" ;
22- import IdeaBankModal from "./components/idea-modal" ;
23- import { useSettingsStore } from "./stores/settingsStore" ;
24- import SettingsView from "./views/settings" ;
25- import { useUpdater } from "./hooks/use-updater" ;
26- import ProgressBar from "./components/progress-bar" ;
27- import { useToast } from "./hooks/use-toast" ;
17+ import { Toaster } from "@/components/ui/toaster" ;
18+ import ScheduleView from "@/views/schedule" ;
19+ import IdeaBank from "@/views/idea-bank" ;
20+ import { useIdeaBankStore } from "@/stores/ideaBankStore" ;
21+ import { Idea } from "@/types/idea" ;
22+ import IdeaBankModal from "@/components/idea-modal" ;
23+ import { useSettingsStore } from "@/stores/settingsStore" ;
24+ import SettingsView from "@/views/settings" ;
25+ import { useUpdater } from "@/hooks/use-updater" ;
26+ import ProgressBar from "@/components/progress-bar" ;
27+ import { useToast } from "@/hooks/use-toast" ;
28+ import { ConfirmationModalProvider } from "@/providers/modal-provider" ;
2829
2930export type ActiveTab =
3031 | "videos"
@@ -45,7 +46,6 @@ function App() {
4546
4647 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
4748 const [ isIdeaModalOpen , setIsIdeaModalOpen ] = useState ( false ) ;
48-
4949 const [ selectedIdea , setSelectedIdea ] = useState < Idea | null > ( null ) ;
5050
5151 const { toast } = useToast ( ) ; // Use the toast hook
@@ -104,42 +104,44 @@ function App() {
104104
105105 return (
106106 < ThemeProvider defaultTheme = "system" storageKey = "vite-ui-theme" >
107- < Toaster />
108- < SidebarProvider
109- style = {
110- {
111- "--sidebar-width" : "15rem" ,
112- } as React . CSSProperties
113- }
114- >
115- < AppSidebar onNavigate = { setActiveTab } currentTab = { activeTab } />
116- < SidebarInset >
117- < header className = "flex shrink-0 sticky top-0 bg-background items-center gap-2 px-4 pt-4 pb-3" >
118- < SidebarTrigger className = "-ml-1" />
119- < Separator orientation = "vertical" className = "mr-2 h-4" />
120- { activeTab . charAt ( 0 ) . toUpperCase ( ) + activeTab . slice ( 1 ) }
121- < ModeToggle />
122- < VideoModal
123- video = { selectedVideo }
124- open = { isModalOpen }
125- setOpen = { setIsModalOpen }
126- resetSelectedVideo = { ( ) => setSelectedVideo ( null ) }
127- triggerVisible = { activeTab === "videos" }
128- />
129- < IdeaBankModal
130- idea = { selectedIdea }
131- open = { isIdeaModalOpen }
132- setOpen = { setIsIdeaModalOpen }
133- resetSelectedIdea = { ( ) => setSelectedIdea ( null ) }
134- triggerVisible = { activeTab === "ideas" }
135- />
136- </ header >
137- < div className = "flex flex-1 justify-start flex-col gap-4 w-full mx-auto pb-2" >
138- < ActiveTabComponent />
139- </ div >
140- </ SidebarInset >
141- </ SidebarProvider >
142- { showProgressDialog && < ProgressBar progress = { progress } /> }
107+ < ConfirmationModalProvider >
108+ < Toaster />
109+ < SidebarProvider
110+ style = {
111+ {
112+ "--sidebar-width" : "15rem" ,
113+ } as React . CSSProperties
114+ }
115+ >
116+ < AppSidebar onNavigate = { setActiveTab } currentTab = { activeTab } />
117+ < SidebarInset >
118+ < header className = "flex shrink-0 sticky top-0 bg-background items-center gap-2 px-4 pt-4 pb-3" >
119+ < SidebarTrigger className = "-ml-1" />
120+ < Separator orientation = "vertical" className = "mr-2 h-4" />
121+ { activeTab . charAt ( 0 ) . toUpperCase ( ) + activeTab . slice ( 1 ) }
122+ < ModeToggle />
123+ < VideoModal
124+ video = { selectedVideo }
125+ open = { isModalOpen }
126+ setOpen = { setIsModalOpen }
127+ resetSelectedVideo = { ( ) => setSelectedVideo ( null ) }
128+ triggerVisible = { activeTab === "videos" }
129+ />
130+ < IdeaBankModal
131+ idea = { selectedIdea }
132+ open = { isIdeaModalOpen }
133+ setOpen = { setIsIdeaModalOpen }
134+ resetSelectedIdea = { ( ) => setSelectedIdea ( null ) }
135+ triggerVisible = { activeTab === "ideas" }
136+ />
137+ </ header >
138+ < div className = "flex flex-1 justify-start flex-col gap-4 w-full mx-auto pb-2" >
139+ < ActiveTabComponent />
140+ </ div >
141+ </ SidebarInset >
142+ </ SidebarProvider >
143+ { showProgressDialog && < ProgressBar progress = { progress } /> }
144+ </ ConfirmationModalProvider >
143145 </ ThemeProvider >
144146 ) ;
145147}
0 commit comments