"use client"; import { createContext, useCallback, useContext, useMemo, useState, type ReactNode, } from "react"; type CreateFlowContinueAttemptContextValue = { attempted: boolean; markAttempted: () => void; clearAttempted: () => void; }; const CreateFlowContinueAttemptContext = createContext(null); export function CreateFlowContinueAttemptProvider({ children, }: { children: ReactNode; }) { const [attempted, setAttempted] = useState(false); const markAttempted = useCallback(() => setAttempted(true), []); const clearAttempted = useCallback(() => setAttempted(false), []); const value = useMemo( () => ({ attempted, markAttempted, clearAttempted }), [attempted, markAttempted, clearAttempted], ); return ( {children} ); } export function useCreateFlowContinueAttempt(): CreateFlowContinueAttemptContextValue { const value = useContext(CreateFlowContinueAttemptContext); if (!value) { return { attempted: false, markAttempted: () => {}, clearAttempted: () => {}, }; } return value; }