mirror of
https://github.com/mountain-loop/yaak.git
synced 2025-12-23 22:48:55 -05:00
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import type { ConfirmProps } from '../components/core/Confirm';
|
|
import { Confirm } from '../components/core/Confirm';
|
|
import type { DialogProps } from '../components/core/Dialog';
|
|
import { showDialog } from './dialog';
|
|
|
|
type ConfirmArgs = {
|
|
id: string;
|
|
} & Pick<DialogProps, 'title' | 'description' | 'size'> &
|
|
Pick<ConfirmProps, 'color' | 'confirmText' | 'requireTyping'>;
|
|
|
|
export async function showConfirm({
|
|
color,
|
|
confirmText,
|
|
requireTyping,
|
|
size = 'sm',
|
|
...extraProps
|
|
}: ConfirmArgs) {
|
|
return new Promise((onResult: ConfirmProps['onResult']) => {
|
|
showDialog({
|
|
...extraProps,
|
|
hideX: true,
|
|
size,
|
|
disableBackdropClose: true, // Prevent accidental dismisses
|
|
render: ({ hide }) => Confirm({ onHide: hide, color, onResult, confirmText, requireTyping }),
|
|
});
|
|
});
|
|
}
|
|
|
|
export async function showConfirmDelete({ confirmText, color, ...extraProps }: ConfirmArgs) {
|
|
return showConfirm({
|
|
color: color ?? 'danger',
|
|
confirmText: confirmText ?? 'Delete',
|
|
...extraProps,
|
|
});
|
|
}
|