aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/pages/timeline/TimelineCard.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-08-29 01:30:30 +0800
committercrupest <crupest@outlook.com>2023-08-29 01:30:30 +0800
commitb05860b6d2ea17db29a338659def49dc31082346 (patch)
treecbbd9d99af5e6b006f142effeae5222278dad02f /FrontEnd/src/pages/timeline/TimelineCard.tsx
parent502dd817c79018c84b0a958dd4b2e24781e68ae1 (diff)
downloadtimeline-b05860b6d2ea17db29a338659def49dc31082346.tar.gz
timeline-b05860b6d2ea17db29a338659def49dc31082346.tar.bz2
timeline-b05860b6d2ea17db29a338659def49dc31082346.zip
Refactor dialog module.
Diffstat (limited to 'FrontEnd/src/pages/timeline/TimelineCard.tsx')
-rw-r--r--FrontEnd/src/pages/timeline/TimelineCard.tsx28
1 files changed, 13 insertions, 15 deletions
diff --git a/FrontEnd/src/pages/timeline/TimelineCard.tsx b/FrontEnd/src/pages/timeline/TimelineCard.tsx
index f17a3ce9..133f1ef4 100644
--- a/FrontEnd/src/pages/timeline/TimelineCard.tsx
+++ b/FrontEnd/src/pages/timeline/TimelineCard.tsx
@@ -8,7 +8,7 @@ import { HttpTimelineInfo } from "~src/http/timeline";
import { getHttpBookmarkClient } from "~src/http/bookmark";
import { useMobile } from "~src/components/hooks";
-import { Dialog, useDialog } from "~src/components/dialog";
+import { Dialog, DialogProvider, useDialog } from "~src/components/dialog";
import UserAvatar from "~src/components/user/UserAvatar";
import PopupMenu from "~src/components/menu/PopupMenu";
import FullPageDialog from "~src/components/dialog/FullPageDialog";
@@ -40,11 +40,17 @@ export default function TimelineCard(props: TimelinePageCardProps) {
const isMobile = useMobile();
- const { createDialogSwitch, dialogPropsMap } = useDialog([
- "member",
- "property",
- "delete",
- ]);
+ const { controller, createDialogSwitch } = useDialog({
+ member: (
+ <Dialog>
+ <TimelineMember timeline={timeline} onChange={onReload} />
+ </Dialog>
+ ),
+ property: (
+ <TimelinePropertyChangeDialog timeline={timeline} onChange={onReload} />
+ ),
+ delete: <TimelineDeleteDialog timeline={timeline} />,
+ });
const content = (
<div>
@@ -144,15 +150,7 @@ export default function TimelineCard(props: TimelinePageCardProps) {
) : (
<div style={{ display: collapse ? "none" : "block" }}>{content}</div>
)}
- <Dialog {...dialogPropsMap["member"]}>
- <TimelineMember timeline={timeline} onChange={onReload} />
- </Dialog>
- <TimelinePropertyChangeDialog
- timeline={timeline}
- onChange={onReload}
- {...dialogPropsMap["property"]}
- />
- <TimelineDeleteDialog timeline={timeline} {...dialogPropsMap["delete"]} />
+ <DialogProvider controller={controller} />
</Card>
);
}