aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/components/dialog/Dialog.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/Dialog.tsx
parentd477c7270c90b190ed82b13f48f39a05d83503d2 (diff)
downloadtimeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.tar.gz
timeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.tar.bz2
timeline-6dd0bafa45ce22f0acac7d6e097e3f1790cdb5d7.zip
...
Diffstat (limited to 'FrontEnd/src/components/dialog/Dialog.tsx')
-rw-r--r--FrontEnd/src/components/dialog/Dialog.tsx50
1 files changed, 11 insertions, 39 deletions
diff --git a/FrontEnd/src/components/dialog/Dialog.tsx b/FrontEnd/src/components/dialog/Dialog.tsx
index 2d0b34db..b5524a11 100644
--- a/FrontEnd/src/components/dialog/Dialog.tsx
+++ b/FrontEnd/src/components/dialog/Dialog.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 InPortal from "../InPortal";
+import DialogOverlay from "./DialogOverlay";
import "./Dialog.css";
@@ -23,41 +21,15 @@ export default function Dialog({
children,
disableCloseOnClickOnOverlay,
}: DialogProps) {
- const nodeRef = useRef(null);
- const lastPointerDownIdRef = useRef<number | null>(null);
-
return (
- <InPortal>
- <CSSTransition
- nodeRef={nodeRef}
- mountOnEnter
- unmountOnExit
- in={open}
- timeout={300}
- classNames="cru-dialog"
- >
- <div
- ref={nodeRef}
- className={classNames(
- `cru-theme-${color ?? "primary"}`,
- "cru-dialog-overlay",
- )}
- >
- <div
- className="cru-dialog-background"
- onPointerDown={(e) => {
- lastPointerDownIdRef.current = e.pointerId;
- }}
- onPointerUp={(e) => {
- if (lastPointerDownIdRef.current === e.pointerId) {
- if (!disableCloseOnClickOnOverlay) onClose();
- }
- lastPointerDownIdRef.current = null;
- }}
- />
- <div className="cru-dialog-container">{children}</div>
- </div>
- </CSSTransition>
- </InPortal>
+ <DialogOverlay
+ open={open}
+ onClose={onClose}
+ transitionClassNames="cru-dialog-normal"
+ overlayClassName={`cru-dialog-normal cru-theme-${color ?? "primary"}`}
+ disableCloseOnClickOnOverlay={disableCloseOnClickOnOverlay}
+ >
+ {children}
+ </DialogOverlay>
);
}