import { useContext, useEffect } from "react"; import { PromptContext } from "../providers/prompt-provider"; type SelectData = { label: string; value: string; }; export const useSelectPrompt = (data?: SelectData[]) => { const { selectData, selectionGuide, resolve, setResolve, setSelectData, setSelectionGuide, } = useContext(PromptContext); const prompt = (message: string) => { setSelectionGuide(message); return new Promise<{ resolved: boolean; value?: string }>((resolve) => { setResolve(() => resolve); }); }; const onSubmit = (value: string) => { resolve?.({ resolved: true, value }); setSelectionGuide(""); }; const onCancel = () => { resolve?.({ resolved: false }); setSelectionGuide(""); }; useEffect(() => { if (data) setSelectData(data); }, [data]); return { selectData, selectionGuide, isOpen: !!selectionGuide, prompt, onSubmit, onCancel, }; };