aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/views/timeline/index.tsx
blob: 8048dd128f9cb837d71835085d2beabd8744ac3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React from "react";
import { useParams } from "react-router";

import TimelinePageTemplate from "../timeline-common/TimelinePageTemplate";

import TimelinePageUI from "./TimelinePageUI";
import { OrdinaryTimelineManageItem } from "./TimelineInfoCard";
import TimelineDeleteDialog from "./TimelineDeleteDialog";

const TimelinePage: React.FC = () => {
  const { name } = useParams<{ name: string }>();

  const [dialog, setDialog] = React.useState<OrdinaryTimelineManageItem | null>(
    null
  );
  const [reloadKey, setReloadKey] = React.useState<number>(0);

  let dialogElement: React.ReactElement | undefined;
  if (dialog === "delete") {
    dialogElement = (
      <TimelineDeleteDialog open close={() => setDialog(null)} name={name} />
    );
  }

  return (
    <>
      <TimelinePageTemplate
        name={name}
        UiComponent={TimelinePageUI}
        onManage={(item) => setDialog(item)}
        notFoundI18nKey="timeline.timelineNotExist"
        reloadKey={reloadKey}
        onReload={() => setReloadKey(reloadKey + 1)}
      />
      {dialogElement}
    </>
  );
};

export default TimelinePage;