import { createContext, useContext, useState, ReactNode } from "react"; import { LoadingScreen } from "@/components/ui/loading-screen"; interface LoadingContextType { isLoading: boolean; message: string; startLoading: (message?: string) => void; stopLoading: () => void; } const LoadingContext = createContext(undefined); interface LoadingProviderProps { children: ReactNode; } export function LoadingProvider({ children }: LoadingProviderProps) { const [isLoading, setIsLoading] = useState(false); const [message, setMessage] = useState("Loading..."); const startLoading = (message = "Loading...") => { setMessage(message); setIsLoading(true); }; const stopLoading = () => { setIsLoading(false); }; return ( {children} {isLoading && } ); } // eslint-disable-next-line react-refresh/only-export-components export function useLoading() { const context = useContext(LoadingContext); if (context === undefined) { throw new Error("useLoading must be used within a LoadingProvider"); } return context; }