Files
Checkmate/Client/src/Components/Dialog/index.jsx
T

85 lines
1.8 KiB
React
Raw Normal View History

2024-10-11 14:28:09 -04:00
import LoadingButton from "@mui/lab/LoadingButton";
2024-10-22 05:58:21 -04:00
import { Button, Stack, Typography } from "@mui/material";
2024-10-11 14:28:09 -04:00
import PropTypes from "prop-types";
2024-10-22 05:58:21 -04:00
import { GenericDialog } from "./genericDialog";
const Dialog = ({
modelTitle,
modelDescription,
open,
onClose,
title,
confirmationBtnLbl,
confirmationBtnOnClick,
cancelBtnLbl,
cancelBtnOnClick,
theme,
isLoading,
description,
}) => {
return (
2024-10-22 05:58:21 -04:00
<GenericDialog
title={modelTitle}
description={modelDescription}
open={open}
2024-10-22 05:58:21 -04:00
close={onClose}
theme={theme}
>
2024-10-22 05:58:21 -04:00
<Typography
id={modelTitle}
component="h2"
fontSize={16}
color={theme.palette.text.primary}
fontWeight={600}
>
2024-10-22 05:58:21 -04:00
{title}
</Typography>
{description && (
<Typography
2024-10-22 05:58:21 -04:00
id={modelDescription}
color={theme.palette.text.tertiary}
>
2024-10-22 05:58:21 -04:00
{description}
</Typography>
2024-10-22 05:58:21 -04:00
)}
<Stack
direction="row"
gap={theme.spacing(4)}
mt={theme.spacing(12)}
justifyContent="flex-end"
>
<Button
variant="text"
color="info"
onClick={cancelBtnOnClick}
>
{cancelBtnLbl}
</Button>
<LoadingButton
variant="contained"
color="error"
loading={isLoading}
onClick={confirmationBtnOnClick}
>
2024-10-22 05:58:21 -04:00
{confirmationBtnLbl}
</LoadingButton>
</Stack>
2024-10-22 05:58:21 -04:00
</GenericDialog>
);
};
2024-10-11 14:28:09 -04:00
Dialog.propTypes = {
modelTitle: PropTypes.string.isRequired,
modelDescription: PropTypes.string.isRequired,
open: PropTypes.bool.isRequired,
onClose: PropTypes.func.isRequired,
title: PropTypes.string.isRequired,
confirmationBtnLbl: PropTypes.string.isRequired,
confirmationBtnOnClick: PropTypes.func.isRequired,
cancelBtnLbl: PropTypes.string.isRequired,
cancelBtnOnClick: PropTypes.func.isRequired,
theme: PropTypes.object.isRequired,
isLoading: PropTypes.bool.isRequired,
description: PropTypes.string,
};
2024-10-11 14:28:09 -04:00
export default Dialog;