"use client"

import { createContext, useContext, useState, ReactNode } from "react"

interface LoadingContextType {
  isLoaded: boolean
  setIsLoaded: (loaded: boolean) => void
  pageDataReady: boolean
  setPageDataReady: (ready: boolean) => void
}

const LoadingContext = createContext<LoadingContextType | undefined>(undefined)

export function LoadingProvider({ children }: { children: ReactNode }) {
  const [isLoaded, setIsLoaded] = useState(false)
  const [pageDataReady, setPageDataReady] = useState(true)

  return (
    <LoadingContext.Provider value={{ isLoaded, setIsLoaded, pageDataReady, setPageDataReady }}>
      {children}
    </LoadingContext.Provider>
  )
}

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