import { memo, useEffect, useState } from "react" import { GetUserConfirmFunction, userInteractionInternals } from "./userInteraction" import { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from "@mui/material" type UserConfirmInfo2 = { title?: string content: string resolve: (data: boolean) => void } const UserConfirmDialog = memo(() => { const [userConfirmInfo, setUserConfirmInfo] = useState() useEffect(() => { const getUserConfirm: GetUserConfirmFunction = info => { return new Promise(resolve => { setUserConfirmInfo({ ...info, resolve }) }) } userInteractionInternals.getUserConfirm = getUserConfirm return () => (userInteractionInternals.getUserConfirm = undefined) }) if (!userConfirmInfo) return null const onClose = () => { userConfirmInfo.resolve(false) setUserConfirmInfo(undefined) } const onOk = () => { userConfirmInfo.resolve(true) setUserConfirmInfo(undefined) } return ( {userConfirmInfo.title || "确认"} {userConfirmInfo.content} ) }) export default UserConfirmDialog