1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { SpaceBetweenFlex } from "@ente/shared/components/Container";
- import CloseIcon from "@mui/icons-material/Close";
- import {
- DialogTitle,
- IconButton,
- Typography,
- type DialogProps,
- } from "@mui/material";
- import React from "react";
- interface DialogTitleWithCloseButtonProps {
- onClose: () => void;
- }
- const DialogTitleWithCloseButton: React.FC<
- React.PropsWithChildren<DialogTitleWithCloseButtonProps>
- > = ({ children, onClose }) => {
- return (
- <DialogTitle>
- <SpaceBetweenFlex>
- <Typography variant="h3" fontWeight={"bold"}>
- {children}
- </Typography>
- {onClose && (
- <IconButton
- aria-label="close"
- onClick={onClose}
- sx={{ float: "right" }}
- color="secondary"
- >
- <CloseIcon />
- </IconButton>
- )}
- </SpaceBetweenFlex>
- </DialogTitle>
- );
- };
- export default DialogTitleWithCloseButton;
- export const dialogCloseHandler =
- ({
- staticBackdrop,
- nonClosable,
- onClose,
- }: {
- staticBackdrop?: boolean;
- nonClosable?: boolean;
- onClose: () => void;
- }): DialogProps["onClose"] =>
- (_, reason) => {
- if (nonClosable) {
- // no-op
- } else if (staticBackdrop && reason === "backdropClick") {
- // no-op
- } else {
- onClose();
- }
- };
|