diff options
author | crupest <crupest@outlook.com> | 2020-09-01 02:32:06 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-09-01 02:32:06 +0800 |
commit | aa89b6cce7701a57b0c377d938788b4c940013d6 (patch) | |
tree | ae95cb16698439ac825eb1d692ce14125b625ecb /Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx | |
parent | c3e95a6cd7322c644159eed6350a20dfd1a002ff (diff) | |
download | timeline-aa89b6cce7701a57b0c377d938788b4c940013d6.tar.gz timeline-aa89b6cce7701a57b0c377d938788b4c940013d6.tar.bz2 timeline-aa89b6cce7701a57b0c377d938788b4c940013d6.zip |
...
Diffstat (limited to 'Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx')
-rw-r--r-- | Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx b/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx new file mode 100644 index 00000000..2e5c3a42 --- /dev/null +++ b/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx @@ -0,0 +1,60 @@ +import React from "react"; +import { Row, Col } from "reactstrap"; + +import { TimelineInfo } from "@/services/timeline"; +import { getHttpTimelineClient } from "@/http/timeline"; + +import TimelineBoard from "./TimelineBoard"; +import OfflineBoard from "./OfflineBoard"; + +const BoardWithoutUser: React.FC = () => { + const [publicTimelines, setPublicTimelines] = React.useState< + TimelineInfo[] | "offline" | "loading" + >("loading"); + + React.useEffect(() => { + let subscribe = true; + if (publicTimelines === "loading") { + void getHttpTimelineClient() + .listTimeline({ visibility: "Public" }) + .then( + (timelines) => { + if (subscribe) { + setPublicTimelines(timelines); + } + }, + () => { + setPublicTimelines("offline"); + } + ); + } + return () => { + subscribe = false; + }; + }, [publicTimelines]); + + return ( + <Row className="my-2 justify-content-center"> + {publicTimelines === "offline" ? ( + <Col sm="8" lg="6"> + <OfflineBoard + onReload={() => { + setPublicTimelines("loading"); + }} + /> + </Col> + ) : ( + <Col sm="8" lg="6"> + <TimelineBoard + timelines={publicTimelines} + onReload={() => { + setPublicTimelines("loading"); + }} + /> + </Col> + )} + </Row> + ); +}; + +export default BoardWithoutUser; |