diff options
author | crupest <crupest@outlook.com> | 2022-04-24 16:37:09 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-04-24 16:37:09 +0800 |
commit | fee641197dc4359c189b9ebea45800d71cb5aa8d (patch) | |
tree | 627d79b6cdda35f3ff33147815d932959d09354d /FrontEnd/src/views/timeline/index.tsx | |
parent | e1b5e204156d38fe986996f2bbe3914af7d1e226 (diff) | |
download | timeline-fee641197dc4359c189b9ebea45800d71cb5aa8d.tar.gz timeline-fee641197dc4359c189b9ebea45800d71cb5aa8d.tar.bz2 timeline-fee641197dc4359c189b9ebea45800d71cb5aa8d.zip |
...
Diffstat (limited to 'FrontEnd/src/views/timeline/index.tsx')
-rw-r--r-- | FrontEnd/src/views/timeline/index.tsx | 72 |
1 files changed, 6 insertions, 66 deletions
diff --git a/FrontEnd/src/views/timeline/index.tsx b/FrontEnd/src/views/timeline/index.tsx index 65bb90f6..cb9fb46f 100644 --- a/FrontEnd/src/views/timeline/index.tsx +++ b/FrontEnd/src/views/timeline/index.tsx @@ -1,82 +1,22 @@ import React from "react"; -import { HubConnectionState } from "@microsoft/signalr"; import { useParams } from "react-router-dom"; import { UiLogicError } from "@/common"; -import { HttpTimelineInfo } from "@/http/timeline"; -import { generatePalette, setPalette } from "@/palette"; import Timeline from "./Timeline"; -import TimelineCard from "./TimelineCard"; const TimelinePage: React.FC = () => { - const { owner: ownerUsername, timeline: timelineNameParam } = useParams(); + const { owner, timeline: timelineNameParam } = useParams(); - if (ownerUsername == null || ownerUsername == "") + if (owner == null || owner == "") throw new UiLogicError("Route param owner is not set."); - const timelineName = - timelineNameParam == null || timelineNameParam === "" - ? "self" - : timelineNameParam; - - const [timeline, setTimeline] = React.useState<HttpTimelineInfo | null>(null); - - const [reloadKey, setReloadKey] = React.useState<number>(0); - const reload = (): void => setReloadKey(reloadKey + 1); - - const [connectionStatus, setConnectionStatus] = - React.useState<HubConnectionState>(HubConnectionState.Connecting); - - React.useEffect(() => { - if (timeline != null && timeline.color != null) { - return setPalette(generatePalette({ primary: timeline.color })); - } - }, [timeline]); - - const cardCollapseLocalStorageKey = `timeline.${ownerUsername}.${timelineName}.cardCollapse`; - - const [cardCollapse, setCardCollapse] = React.useState<boolean>(true); - - React.useEffect(() => { - const savedCollapse = window.localStorage.getItem( - cardCollapseLocalStorageKey - ); - setCardCollapse(savedCollapse == null ? true : savedCollapse === "true"); - }, [cardCollapseLocalStorageKey]); - - const toggleCardCollapse = (): void => { - const newState = !cardCollapse; - setCardCollapse(newState); - window.localStorage.setItem( - cardCollapseLocalStorageKey, - newState.toString() - ); - }; + const timeline = timelineNameParam || "self"; return ( - <> - {timeline != null ? ( - <TimelineCard - className="timeline-template-card" - timeline={timeline} - collapse={cardCollapse} - toggleCollapse={toggleCardCollapse} - onReload={reload} - connectionStatus={connectionStatus} - /> - ) : null} - <div className="container"> - <Timeline - timelineOwner={ownerUsername} - timelineName={timelineName} - reloadKey={reloadKey} - onReload={reload} - onTimelineLoaded={(t) => setTimeline(t)} - onConnectionStateChanged={setConnectionStatus} - /> - </div> - </> + <div className="container"> + <Timeline timelineOwner={owner} timelineName={timeline} /> + </div> ); }; |