/** * @file ConfirmHost.tsx * @description Renders the one pending `confirmDialog()` from `lib/confirm.ts` * through `ConfirmModal`. Mounted once in `App.tsx`. * @author Nguyễn Ngọc Trí Vĩ */ import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { ConfirmModal } from "./ConfirmModal"; import { settleConfirm, subscribeConfirm, type PendingConfirm } from "../lib/confirm"; const cancel = () => settleConfirm(false); const confirm = () => settleConfirm(true); /** The single host for `confirmDialog()`. */ export function ConfirmHost() { const { t } = useTranslation("common"); const [p, setP] = useState(null); useEffect(() => subscribeConfirm(setP), []); return ( ); }