Files
upstream-yaak/apps/yaak-client/lib/prompt-form.tsx
upstream-mirror 906fb231cc
Some checks failed
Lint and Test / Lint/Test (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been skipped
snapshot of https://github.com/mountain-loop/yaak.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 17:39:41 +05:00

48 lines
1.2 KiB
TypeScript

import type { FormInput, JsonPrimitive } from "@yaakapp-internal/plugins";
import type { DialogProps } from "../components/core/Dialog";
import type { PromptProps } from "../components/core/Prompt";
import { Prompt } from "../components/core/Prompt";
import { showDialog } from "./dialog";
type FormArgs = Pick<DialogProps, "title" | "description" | "size"> &
Omit<PromptProps, "onClose" | "onCancel" | "onResult"> & {
id: string;
onValuesChange?: (values: Record<string, JsonPrimitive>) => void;
onInputsUpdated?: (cb: (inputs: FormInput[]) => void) => void;
};
export async function showPromptForm({
id,
title,
description,
size,
onValuesChange,
onInputsUpdated,
...props
}: FormArgs) {
return new Promise((resolve: PromptProps["onResult"]) => {
showDialog({
id,
title,
description,
size: size ?? "sm",
disableClose: true,
render: ({ hide }) =>
Prompt({
onCancel: () => {
// Click cancel button within dialog
resolve(null);
hide();
},
onResult: (v) => {
resolve(v);
hide();
},
onValuesChange,
onInputsUpdated,
...props,
}),
});
});
}