aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/components/dialog/FullPageDialog.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-09-22 16:58:30 +0800
committercrupest <crupest@outlook.com>2023-09-22 16:59:41 +0800
commit6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7 (patch)
tree6378aa13ebc5974cbfeeca9f6d525a643993687d /FrontEnd/src/components/dialog/FullPageDialog.tsx
parentd477c7270c90b190ed82b13f48f39a05d83503d2 (diff)
downloadtimeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.tar.gz
timeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.tar.bz2
timeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.zip
...
Diffstat (limited to 'FrontEnd/src/components/dialog/FullPageDialog.tsx')
-rw-r--r--FrontEnd/src/components/dialog/FullPageDialog.tsx63
1 files changed, 22 insertions, 41 deletions
diff --git a/FrontEnd/src/components/dialog/FullPageDialog.tsx b/FrontEnd/src/components/dialog/FullPageDialog.tsx
index b0a39ee3..44ea2a7b 100644
--- a/FrontEnd/src/components/dialog/FullPageDialog.tsx
+++ b/FrontEnd/src/components/dialog/FullPageDialog.tsx
@@ -1,10 +1,8 @@
-import { ReactNode, useRef } from "react";
-import classNames from "classnames";
-import { CSSTransition } from "react-transition-group";
+import { ReactNode } from "react";
import { ThemeColor } from "../common";
import { IconButton } from "../button";
-import InPortal from "../InPortal";
+import DialogOverlay from "./DialogOverlay";
import "./FullPageDialog.css";
@@ -12,8 +10,8 @@ interface FullPageDialogProps {
open: boolean;
onClose: () => void;
color?: ThemeColor;
- contentContainerClassName?: string;
- children: ReactNode;
+ children?: ReactNode;
+ disableCloseOnClickOnOverlay?: boolean;
}
export default function FullPageDialog({
@@ -21,42 +19,25 @@ export default function FullPageDialog({
onClose,
color,
children,
- contentContainerClassName,
+ disableCloseOnClickOnOverlay,
}: FullPageDialogProps) {
- const nodeRef = useRef(null);
-
return (
- <InPortal>
- <CSSTransition
- nodeRef={nodeRef}
- mountOnEnter
- unmountOnExit
- in={open}
- timeout={300}
- classNames="cru-dialog-full-page"
- >
- <div
- ref={nodeRef}
- className={`cru-dialog-full-page cru-theme-${color ?? "primary"}`}
- >
- <div className="cru-dialog-full-page-top-bar">
- <IconButton
- icon="arrow-left"
- color="light"
- className="cru-dialog-full-page-back-button"
- onClick={onClose}
- />
- </div>
- <div
- className={classNames(
- "cru-dialog-full-page-content-container",
- contentContainerClassName,
- )}
- >
- {children}
- </div>
- </div>
- </CSSTransition>
- </InPortal>
+ <DialogOverlay
+ open={open}
+ onClose={onClose}
+ transitionClassNames="cru-dialog-full-page"
+ overlayClassName={`cru-dialog-full-page cru-theme-${color ?? "primary"}`}
+ disableCloseOnClickOnOverlay={disableCloseOnClickOnOverlay}
+ >
+ <div className="cru-dialog-full-page-content">
+ <IconButton
+ icon="x-lg"
+ color={color ?? "primary"}
+ className="cru-dialog-full-page-back"
+ onClick={onClose}
+ />
+ {children}
+ </div>
+ </DialogOverlay>
);
}