"use client" import { createContext, useCallback, useContext, useMemo, type ReactNode, } from "react" import { toast } from "sonner" export const DEMO_CONTACTS_ROUTE_ROOT = "demo/contacts" type DemoContactsContextValue = { enabled: true routeRoot: typeof DEMO_CONTACTS_ROUTE_ROOT reset: () => void notify: (message: string) => void } const DemoContactsContext = createContext(null) export function DemoContactsProvider({ children, onReset, }: { children: ReactNode onReset: () => void }) { const notify = useCallback((message: string) => { toast.message(message, { description: "Mode démo : rien n'est envoyé ni conservé.", }) }, []) const reset = useCallback(() => { onReset() notify("Démo réinitialisée") }, [notify, onReset]) const value = useMemo( () => ({ enabled: true, routeRoot: DEMO_CONTACTS_ROUTE_ROOT, reset, notify, }), [reset, notify] ) return ( {children} ) } export function useDemoContacts(): DemoContactsContextValue | null { return useContext(DemoContactsContext) } export function useIsDemoContacts(): boolean { return useDemoContacts()?.enabled ?? false }