import { Chantier } from "@/class/class"; import { createContext, ReactNode, useContext, useMemo, useState } from "react"; import { getChantiers } from "@/services/ressourcesService"; type ChantierContextType = { chantier: Chantier | null; setChantier: (p: Chantier | null) => void; syncChantier: () => Promise; }; const ChantierContext = createContext(null); type ChantierProviderProps = { children: ReactNode; }; export const ChantierProvider = ({ children }: ChantierProviderProps) => { const [chantier, setChantier] = useState(null); const syncChantier = async () => { if (!chantier) return; const all = await getChantiers(); const updated = all.find(c => c.id === chantier.id); if (updated) { setChantier(updated); } }; const value = useMemo(() => ({ chantier, setChantier,syncChantier }), [chantier]); return ( {children} ); }; export const useChantier = () => { const context = useContext(ChantierContext); if (!context) { throw new Error("useChantier doit ĂȘtre utilisĂ© dans "); } return context; };