Spaces:
Running
Running
| "use client"; | |
| import React, { createContext, useContext, useState, ReactNode } from "react"; | |
| import { ProModal } from "@/components/pro-modal"; | |
| import { Page } from "@/types"; | |
| import { useEditor } from "@/hooks/useEditor"; | |
| interface ProContextType { | |
| isOpen: boolean; | |
| openProModal: (pages: Page[]) => void; | |
| closeProModal: () => void; | |
| } | |
| const ProContext = createContext<ProContextType | undefined>(undefined); | |
| export function ProProvider({ children }: { children: ReactNode }) { | |
| const [isOpen, setIsOpen] = useState(false); | |
| const { pages } = useEditor(); | |
| const openProModal = () => { | |
| setIsOpen(true); | |
| }; | |
| const closeProModal = () => { | |
| setIsOpen(false); | |
| }; | |
| const value = { | |
| isOpen, | |
| openProModal, | |
| closeProModal, | |
| }; | |
| return ( | |
| <ProContext.Provider value={value}> | |
| {children} | |
| <ProModal open={isOpen} onClose={setIsOpen} pages={pages} /> | |
| </ProContext.Provider> | |
| ); | |
| } | |
| export function useProModal() { | |
| const context = useContext(ProContext); | |
| if (context === undefined) { | |
| throw new Error("useProModal must be used within a ProProvider"); | |
| } | |
| return context; | |
| } | |