import { createContext, useContext, type ReactNode } from 'react'
import type { FieldsClient } from './client.js'

const FieldsContext = createContext<FieldsClient | null>(null)

export function FieldsProvider({ client, children }: { client: FieldsClient; children: ReactNode }) {
  return <FieldsContext.Provider value={client}>{children}</FieldsContext.Provider>
}

export function useFieldsClient(): FieldsClient {
  const ctx = useContext(FieldsContext)
  if (!ctx) throw new Error('useFieldsClient must be used within <FieldsProvider>')
  return ctx
}
