BUGFIX: Fix unresolved promise in ns.prompt API (#1257)

This commit is contained in:
catloversg
2024-05-10 15:55:50 +07:00
committed by GitHub
parent e55387df4d
commit 35c32e2871
3 changed files with 28 additions and 9 deletions
+19 -7
View File
@@ -18,19 +18,31 @@ interface Prompt {
export function PromptManager({ hidden }: { hidden: boolean }): React.ReactElement {
const [prompt, setPrompt] = useState<Prompt | null>(null);
const resolveCurrentPromptWithDefaultValue = (currentPrompt: Prompt) => {
if (["text", "select"].includes(currentPrompt.options?.type ?? "")) {
currentPrompt.resolve("");
} else {
currentPrompt.resolve(false);
}
};
useEffect(() => {
return PromptEvent.subscribe((p: Prompt) => {
setPrompt(p);
return PromptEvent.subscribe((newPrompt: Prompt) => {
setPrompt((currentPrompt) => {
if (currentPrompt) {
resolveCurrentPromptWithDefaultValue(currentPrompt);
}
return newPrompt;
});
});
}, []);
function close(): void {
if (prompt === null) return;
if (["text", "select"].includes(prompt.options?.type ?? "")) {
prompt.resolve("");
} else {
prompt.resolve(false);
if (prompt === null) {
return;
}
resolveCurrentPromptWithDefaultValue(prompt);
setPrompt(null);
}