From 0d4e3079aa53f9553eb538951b6ebd6bf4a7a2ee Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 7 Aug 2020 18:27:04 +0800 Subject: Create home page for offline. --- .../ClientApp/src/app/home/BoardWithoutUser.tsx | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Timeline/ClientApp/src/app/home/BoardWithoutUser.tsx (limited to 'Timeline/ClientApp/src/app/home/BoardWithoutUser.tsx') diff --git a/Timeline/ClientApp/src/app/home/BoardWithoutUser.tsx b/Timeline/ClientApp/src/app/home/BoardWithoutUser.tsx new file mode 100644 index 00000000..4b30fcc4 --- /dev/null +++ b/Timeline/ClientApp/src/app/home/BoardWithoutUser.tsx @@ -0,0 +1,61 @@ +import React from 'react'; +import { Row, Col } from 'reactstrap'; + +import { TimelineInfo } from '../data/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 ( + + {publicTimelines === 'offline' ? ( + + { + setPublicTimelines('loading'); + }} + /> + + ) : ( + + { + setPublicTimelines('loading'); + }} + /> + + )} + + ); +}; + +export default BoardWithoutUser; -- cgit v1.2.3