"use client"; import React, { createContext, useContext, useState, ReactNode } from "react"; import { LoginModal } from "@/components/login-modal"; import { Page } from "@/types"; interface LoginContextType { isOpen: boolean; openLoginModal: (options?: LoginModalOptions) => void; closeLoginModal: () => void; } interface LoginModalOptions { pages?: Page[]; title?: string; prompt?: string; description?: string; } const LoginContext = createContext(undefined); export function LoginProvider({ children }: { children: ReactNode }) { const [isOpen, setIsOpen] = useState(false); const [modalOptions, setModalOptions] = useState({}); const openLoginModal = (options: LoginModalOptions = {}) => { setModalOptions(options); setIsOpen(true); }; const closeLoginModal = () => { setIsOpen(false); setModalOptions({}); }; const value = { isOpen, openLoginModal, closeLoginModal, }; return ( {children} ); } export function useLoginModal() { const context = useContext(LoginContext); if (context === undefined) { throw new Error("useLoginModal must be used within a LoginProvider"); } return context; }