import Dialog from '@mui/material/Dialog' import DialogActions from '@mui/material/DialogActions' import DialogContent from '@mui/material/DialogContent' import IconButton from '@mui/material/IconButton' import InputLabel from '@mui/material/InputLabel' import React, { memo, useState } from 'react' import { H4, P } from './typography' import CloseIcon from '../styling/icons/action/close/zodiac.svg?react' import { Button } from './buttons' import { TextInput } from './inputs' import ErrorMessage from './ErrorMessage' import SvgIcon from '@mui/material/SvgIcon' export const DialogTitle = ({ children, onClose }) => { return (
{children} {onClose && ( )}
) } export const ConfirmDialog = memo( ({ title = 'Confirm action', errorMessage = 'This action requires confirmation', open, toBeConfirmed, saveButtonAlwaysEnabled = false, message, confirmationMessage = `Write '${toBeConfirmed}' to confirm this action`, onConfirmed, onDismissed, initialValue = '', disabled = false, ...props }) => { const [value, setValue] = useState(initialValue) const [error, setError] = useState(false) const handleChange = event => setValue(event.target.value) const innerOnClose = () => { setValue('') setError(false) onDismissed() } const isOnErrorState = (!saveButtonAlwaysEnabled && toBeConfirmed !== value) || value === '' return (

{title}

{errorMessage && ( {errorMessage.split(':').map(error => ( <> {error}
))}
)} {message &&

{message}

} {confirmationMessage}
) }, )