import { createContext, useContext, useState, type ReactNode } from 'react'; import { Spinner } from '@/components/ui/spinner'; interface LoadingContextType { isLoading: boolean; loadingMessage?: string; setLoading: (loading: boolean, message?: string) => void; } const LoadingContext = createContext(undefined); export function LoadingProvider({ children }: { children: ReactNode }) { const [isLoading, setIsLoading] = useState(false); const [loadingMessage, setLoadingMessage] = useState(); const setLoading = (loading: boolean, message?: string) => { setIsLoading(loading); setLoadingMessage(message); }; return ( {children} {isLoading && (

{loadingMessage || 'Loading...'}

)}
); } export function useLoading() { const context = useContext(LoadingContext); if (!context) { throw new Error('useLoading must be used within a LoadingProvider'); } return context; }