import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; 
 | 
import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material'; 
 | 
import { 
 | 
    useTranslate, 
 | 
} from 'react-admin'; 
 | 
  
 | 
const ConfirmButton = (props) => { 
 | 
    const { label, onConfirm, data, ...rest } = props; 
 | 
    const translate = useTranslate(); 
 | 
    const buttonRef = useRef(null); 
 | 
    const [open, setOpen] = useState(false); 
 | 
  
 | 
    const handleClickOpen = (event) => { 
 | 
        event.stopPropagation(); 
 | 
        setOpen(true); 
 | 
    }; 
 | 
  
 | 
    const handleClose = (event) => { 
 | 
        event.stopPropagation(); 
 | 
        setOpen(false); 
 | 
    }; 
 | 
  
 | 
    const handleConfirm = (event) => {         
 | 
        handleClose(event); 
 | 
        onConfirm(); 
 | 
    }; 
 | 
  
 | 
    return ( 
 | 
        <> 
 | 
            <Button 
 | 
                ref={buttonRef} 
 | 
                onClick={handleClickOpen} 
 | 
                aria-label={translate(label)} 
 | 
                {...rest} 
 | 
            > 
 | 
                {translate(label)} 
 | 
            </Button> 
 | 
            <Dialog 
 | 
                aria-labelledby="dialog-title" 
 | 
                aria-describedby="dialog-description" 
 | 
                open={open} 
 | 
                onClose={handleClose} 
 | 
            > 
 | 
                <DialogTitle>{translate('common.msg.confirm.tip')}</DialogTitle> 
 | 
                <DialogContent> 
 | 
                    <DialogContentText> 
 | 
                        {data ? data : translate('common.msg.confirm.desc')} 
 | 
                    </DialogContentText> 
 | 
                </DialogContent> 
 | 
                <DialogActions> 
 | 
                    <Button onClick={handleClose} color="primary"> 
 | 
                        {translate('ra.action.cancel')} 
 | 
                    </Button> 
 | 
                    <Button onClick={handleConfirm} color="primary"> 
 | 
                        {translate('ra.action.confirm')} 
 | 
                    </Button> 
 | 
                </DialogActions> 
 | 
            </Dialog> 
 | 
        </> 
 | 
    ) 
 | 
} 
 | 
  
 | 
export default ConfirmButton; 
 |