This commit is contained in:
2025-11-03 12:24:01 +02:00
commit 0806865287
177 changed files with 18453 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import { useCallback, useContext } from "react";
import { MODAL_BACKDROP_TIMEOUT } from "../Modal";
import ConfirmContext from "./ConfirmContext";
type ResolveCallback = ((value: unknown) => void) | null;
let resolveCallback: ResolveCallback = null;
export default function useConfirm() {
const [confirmState, { closeConfirm, showConfirm }] =
useContext(ConfirmContext);
const onConfirm = () => {
closeConfirm();
resolveCallback?.(true);
};
const onCancel = () => {
closeConfirm();
resolveCallback?.(false);
};
const confirm = useCallback(
async (text: string) => {
showConfirm(text);
return new Promise((resolve) => {
setTimeout(() => {
resolveCallback = resolve;
}, MODAL_BACKDROP_TIMEOUT);
});
},
[showConfirm],
);
return { confirm, confirmState, onCancel, onConfirm };
}