diff --git a/src/ui/React/PromptManager.tsx b/src/ui/React/PromptManager.tsx index cf4264415..114c22ad7 100644 --- a/src/ui/React/PromptManager.tsx +++ b/src/ui/React/PromptManager.tsx @@ -52,8 +52,9 @@ export function PromptManager({ hidden }: { hidden: boolean }): React.ReactEleme }; let PromptContent = PromptMenuBoolean; - if (prompt?.options?.type && ["text", "select"].includes(prompt.options.type)) + if (prompt?.options?.type && ["text", "select"].includes(prompt.options.type)) { PromptContent = types[prompt.options.type]; + } const resolve = (value: boolean | string): void => { prompt?.resolve(value); setPrompt(null); @@ -94,10 +95,17 @@ function PromptMenuBoolean({ resolve }: IContentProps): React.ReactElement { ); } -function PromptMenuText({ resolve }: IContentProps): React.ReactElement { +function PromptMenuText({ prompt, resolve }: IContentProps): React.ReactElement { const [value, setValue] = useState(""); - const submit = (): void => resolve(value); + const submit = (): void => { + resolve(value); + setValue(""); + }; + + useEffect(() => { + setValue(""); + }, [prompt]); const onInput = (event: React.ChangeEvent): void => { setValue(event.target.value); @@ -133,7 +141,14 @@ function PromptMenuText({ resolve }: IContentProps): React.ReactElement { function PromptMenuSelect({ prompt, resolve }: IContentProps): React.ReactElement { const [value, setValue] = useState(""); - const submit = (): void => resolve(value); + const submit = (): void => { + resolve(value); + setValue(""); + }; + + useEffect(() => { + setValue(""); + }, [prompt]); const onChange = (event: SelectChangeEvent): void => { setValue(event.target.value); @@ -158,7 +173,11 @@ function PromptMenuSelect({ prompt, resolve }: IContentProps): React.ReactElemen return ( <>
- {getItems(prompt.options?.choices || [])}