Fix prompt

This commit is contained in:
Gregory Schier
2024-10-02 12:19:43 -07:00
parent 3b2ee25d75
commit 7e62bb6b68
5 changed files with 26 additions and 24 deletions

View File

@@ -7,12 +7,12 @@ import { HStack } from '../components/core/Stacks';
export type PromptProps = Omit<PromptTextRequest, 'id' | 'title' | 'description'> & {
description?: ReactNode;
onHide: () => void;
onCancel: () => void;
onResult: (value: string | null) => void;
};
export function Prompt({
onHide,
onCancel,
label,
defaultValue,
placeholder,
@@ -25,10 +25,9 @@ export function Prompt({
const handleSubmit = useCallback(
(e: FormEvent<HTMLFormElement>) => {
e.preventDefault();
onHide();
onResult(value);
},
[onHide, onResult, value],
[onResult, value],
);
return (
@@ -46,7 +45,7 @@ export function Prompt({
onChange={setValue}
/>
<HStack space={2} justifyContent="end">
<Button onClick={onHide} variant="border" color="secondary">
<Button onClick={onCancel} variant="border" color="secondary">
{cancelText || 'Cancel'}
</Button>
<Button type="submit" color="primary">

View File

@@ -4,7 +4,7 @@ import type { PromptProps } from './Prompt';
import { Prompt } from './Prompt';
type Props = Pick<DialogProps, 'title' | 'description'> &
Omit<PromptProps, 'onClose' | 'onHide' | 'onResult'> & { id: string };
Omit<PromptProps, 'onClose' | 'onCancel' | 'onResult'> & { id: string };
export function usePrompt() {
const dialog = useDialog();
@@ -16,11 +16,16 @@ export function usePrompt() {
description,
hideX: true,
size: 'sm',
onClose: () => {
// Click backdrop, close, or escape
resolve(null);
},
render: ({ hide }) =>
Prompt({
onHide: () => {
hide();
onCancel: () => {
// Click cancel button within dialog
resolve(null);
hide();
},
onResult: resolve,
...props,