Files
yaak-mountain-loop/src-web/hooks/useConfirm.ts

35 lines
882 B
TypeScript

import { useCallback } from 'react';
import type { DialogProps } from '../components/core/Dialog';
import { showDialog } from '../lib/dialog';
import type { ConfirmProps } from './Confirm';
import { Confirm } from './Confirm';
export function useConfirm() {
return useCallback(
({
id,
title,
description,
variant,
confirmText,
}: {
id: string;
title: DialogProps['title'];
description?: DialogProps['description'];
variant?: ConfirmProps['variant'];
confirmText?: ConfirmProps['confirmText'];
}) =>
new Promise((onResult: ConfirmProps['onResult']) => {
showDialog({
id,
title,
description,
hideX: true,
size: 'sm',
render: ({ hide }) => Confirm({ onHide: hide, variant, onResult, confirmText }),
});
}),
[],
);
}