'use client' import { createContext, useContext, useState, useCallback, ReactNode } from 'react' import { AddSourceDialog } from '@/components/sources/AddSourceDialog' import { CreateNotebookDialog } from '@/components/notebooks/CreateNotebookDialog' import { GeneratePodcastDialog } from '@/components/podcasts/GeneratePodcastDialog' interface CreateDialogsContextType { openSourceDialog: () => void openNotebookDialog: () => void openPodcastDialog: () => void } const CreateDialogsContext = createContext(null) export function CreateDialogsProvider({ children }: { children: ReactNode }) { const [sourceDialogOpen, setSourceDialogOpen] = useState(false) const [notebookDialogOpen, setNotebookDialogOpen] = useState(false) const [podcastDialogOpen, setPodcastDialogOpen] = useState(false) const openSourceDialog = useCallback(() => setSourceDialogOpen(true), []) const openNotebookDialog = useCallback(() => setNotebookDialogOpen(true), []) const openPodcastDialog = useCallback(() => setPodcastDialogOpen(true), []) return ( {children} ) } export function useCreateDialogs() { const context = useContext(CreateDialogsContext) if (!context) { throw new Error('useCreateDialogs must be used within a CreateDialogsProvider') } return context }