| | |
| | | import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; |
| | | import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material'; |
| | | import { |
| | | useTranslate, |
| | | useTranslate |
| | | } from 'react-admin'; |
| | | |
| | | const ConfirmButton = (props) => { |
| | | const { label, onConfirm, data, ...rest } = props; |
| | | const { label, onConfirm, renderButton, ...rest } = props; |
| | | const translate = useTranslate(); |
| | | const buttonRef = useRef(null); |
| | | const [open, setOpen] = useState(false); |
| | |
| | | onConfirm(); |
| | | }; |
| | | |
| | | return ( |
| | | <> |
| | | const buttonElement = renderButton |
| | | ? renderButton({ |
| | | buttonProps: { |
| | | ref: buttonRef, |
| | | onClick: handleClickOpen, |
| | | 'aria-label': translate(label), |
| | | ...rest, |
| | | }, |
| | | label, |
| | | translate, |
| | | }) |
| | | : ( |
| | | <Button |
| | | ref={buttonRef} |
| | | onClick={handleClickOpen} |
| | |
| | | > |
| | | {translate(label)} |
| | | </Button> |
| | | ); |
| | | |
| | | return ( |
| | | <> |
| | | {buttonElement} |
| | | <Dialog |
| | | aria-labelledby="dialog-title" |
| | | aria-describedby="dialog-description" |
| | |
| | | ) |
| | | } |
| | | |
| | | export default ConfirmButton; |
| | | export default ConfirmButton; |