remove old message dialog
This commit is contained in:
parent
7eda72902b
commit
68bbcfadff
|
@ -1,66 +0,0 @@
|
|||
import { Dialog, DialogProps } from '@mui/material';
|
||||
import { FC } from 'react';
|
||||
import React from 'react';
|
||||
import styled from 'styled-components';
|
||||
|
||||
const StyledMessageDialog = styled(Dialog)(({ theme }) => ({
|
||||
'& .MuiPaper-root': {
|
||||
padding: '32px 32px 32px 28px',
|
||||
margin: '16px',
|
||||
},
|
||||
'& .MuiDialogTitle-root': {
|
||||
padding: 0,
|
||||
fontSize: '30px',
|
||||
fontWeight: 600,
|
||||
lineHeight: '36.31px',
|
||||
},
|
||||
'& .MuiDialogContent-root': {
|
||||
padding: 0,
|
||||
fontSize: '18px',
|
||||
lineHeight: '21.78px',
|
||||
paddingTop: theme.spacing(2),
|
||||
[theme.breakpoints.down('sm')]: {
|
||||
paddingTop: '12px',
|
||||
},
|
||||
},
|
||||
|
||||
'& .MuiDialogContent-root > *': {
|
||||
fontSize: '18px',
|
||||
color: theme.palette.text.secondary,
|
||||
},
|
||||
'& .MuiDialogActions-root': {
|
||||
padding: 0,
|
||||
paddingTop: theme.spacing(8),
|
||||
[theme.breakpoints.down('sm')]: {
|
||||
paddingTop: '48px',
|
||||
},
|
||||
},
|
||||
'& .MuiDialogActions-root .MuiButton-root': {
|
||||
marginLeft: theme.spacing(2),
|
||||
},
|
||||
}));
|
||||
|
||||
interface MessageDialogBaseProps extends DialogProps {
|
||||
staticBackDrop?: boolean;
|
||||
}
|
||||
|
||||
const MessageDialogBase: FC<MessageDialogBaseProps> = ({
|
||||
children,
|
||||
staticBackDrop,
|
||||
...props
|
||||
}) => {
|
||||
const handleClose: DialogProps['onClose'] = (_, reason) => {
|
||||
if (staticBackDrop && reason === 'backdropClick') {
|
||||
// no-op
|
||||
} else {
|
||||
props.onClose;
|
||||
}
|
||||
};
|
||||
return (
|
||||
<StyledMessageDialog onClose={handleClose} {...props}>
|
||||
{children}
|
||||
</StyledMessageDialog>
|
||||
);
|
||||
};
|
||||
|
||||
export default MessageDialogBase;
|
|
@ -1,26 +0,0 @@
|
|||
import React from 'react';
|
||||
import { DialogTitle, IconButton } from '@mui/material';
|
||||
import CloseIcon from '@mui/icons-material/Close';
|
||||
import { SpaceBetweenFlex } from 'components/Container';
|
||||
|
||||
const DialogTitleWithCloseButton = (props) => {
|
||||
const { children, onClose, ...other } = props;
|
||||
|
||||
return (
|
||||
<DialogTitle {...other}>
|
||||
<SpaceBetweenFlex>
|
||||
{children}
|
||||
{onClose && (
|
||||
<IconButton
|
||||
aria-label="close"
|
||||
onClick={onClose}
|
||||
sx={{ float: 'right' }}>
|
||||
<CloseIcon />
|
||||
</IconButton>
|
||||
)}
|
||||
</SpaceBetweenFlex>
|
||||
</DialogTitle>
|
||||
);
|
||||
};
|
||||
|
||||
export default DialogTitleWithCloseButton;
|
|
@ -1,100 +0,0 @@
|
|||
import React from 'react';
|
||||
import constants from 'utils/strings/constants';
|
||||
import {
|
||||
Breakpoint,
|
||||
Button,
|
||||
ButtonProps,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogContentText,
|
||||
DialogTitle,
|
||||
} from '@mui/material';
|
||||
import MessageDialogBase from './MessageDialogBase';
|
||||
|
||||
export interface MessageAttributes {
|
||||
title?: string;
|
||||
staticBackdrop?: boolean;
|
||||
nonClosable?: boolean;
|
||||
content?: any;
|
||||
close?: {
|
||||
text?: string;
|
||||
variant?: ButtonProps['color'];
|
||||
action?: () => void;
|
||||
};
|
||||
proceed?: {
|
||||
text: string;
|
||||
action: () => void;
|
||||
variant: ButtonProps['color'];
|
||||
disabled?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
export type SetDialogMessage = React.Dispatch<
|
||||
React.SetStateAction<MessageAttributes>
|
||||
>;
|
||||
type Props = React.PropsWithChildren<{
|
||||
show: boolean;
|
||||
onHide: () => void;
|
||||
attributes: MessageAttributes;
|
||||
size?: Breakpoint;
|
||||
}>;
|
||||
|
||||
export default function MessageDialog({
|
||||
attributes,
|
||||
children,
|
||||
...props
|
||||
}: Props) {
|
||||
if (!attributes) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
return (
|
||||
<MessageDialogBase
|
||||
open={props.show}
|
||||
maxWidth={props.size}
|
||||
fullWidth
|
||||
staticBackDrop={attributes.staticBackdrop}
|
||||
onClose={attributes.nonClosable ? props.onHide : () => null}>
|
||||
{attributes.title && <DialogTitle>{attributes.title}</DialogTitle>}
|
||||
{(children || attributes?.content) && (
|
||||
<DialogContent>
|
||||
{children || (
|
||||
<DialogContentText>
|
||||
{attributes.content}
|
||||
</DialogContentText>
|
||||
)}
|
||||
</DialogContent>
|
||||
)}
|
||||
{(attributes.close || attributes.proceed) && (
|
||||
<DialogActions>
|
||||
<>
|
||||
{attributes.close && (
|
||||
<Button
|
||||
variant="contained"
|
||||
color={attributes.close?.variant ?? 'secondary'}
|
||||
onClick={() => {
|
||||
attributes.close.action &&
|
||||
attributes.close?.action();
|
||||
props.onHide();
|
||||
}}>
|
||||
{attributes.close?.text ?? constants.OK}
|
||||
</Button>
|
||||
)}
|
||||
{attributes.proceed && (
|
||||
<Button
|
||||
variant="contained"
|
||||
color={attributes.proceed?.variant ?? 'primary'}
|
||||
onClick={() => {
|
||||
attributes.proceed.action();
|
||||
props.onHide();
|
||||
}}
|
||||
disabled={attributes.proceed.disabled}>
|
||||
{attributes.proceed.text}
|
||||
</Button>
|
||||
)}
|
||||
</>
|
||||
</DialogActions>
|
||||
)}
|
||||
</MessageDialogBase>
|
||||
);
|
||||
}
|
Loading…
Reference in a new issue