"use client" import { createContext, useCallback, useContext, useMemo, type ReactNode, } from "react" import { toast } from "sonner" export const DEMO_DRIVE_ROUTE_ROOT = "demo/drive" export const DEFAULT_DRIVE_ROUTE_ROOT = "drive" type DemoDriveContextValue = { enabled: true routeRoot: typeof DEMO_DRIVE_ROUTE_ROOT reset: () => void notify: (message: string) => void } const DemoDriveContext = createContext(null) export function DemoDriveProvider({ 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_DRIVE_ROUTE_ROOT, reset, notify, }), [reset, notify] ) return ( {children} ) } export function useDemoDrive(): DemoDriveContextValue | null { return useContext(DemoDriveContext) } export function useIsDemoDrive(): boolean { return useDemoDrive()?.enabled ?? false }