aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/home/OfflineBoard.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-08-24 22:59:45 +0800
committercrupest <crupest@outlook.com>2020-08-24 22:59:45 +0800
commitde1d582bf2ed7062fd400459f30d463d47ef9982 (patch)
tree777e27f954c9fd7beab36aad61bb767a28d65a89 /Timeline/ClientApp/src/app/home/OfflineBoard.tsx
parent5a8fb35c2791a921d8833beb37aa2edd5047da4c (diff)
downloadtimeline-de1d582bf2ed7062fd400459f30d463d47ef9982.tar.gz
timeline-de1d582bf2ed7062fd400459f30d463d47ef9982.tar.bz2
timeline-de1d582bf2ed7062fd400459f30d463d47ef9982.zip
...
Diffstat (limited to 'Timeline/ClientApp/src/app/home/OfflineBoard.tsx')
-rw-r--r--Timeline/ClientApp/src/app/home/OfflineBoard.tsx124
1 files changed, 62 insertions, 62 deletions
diff --git a/Timeline/ClientApp/src/app/home/OfflineBoard.tsx b/Timeline/ClientApp/src/app/home/OfflineBoard.tsx
index ca6d2a26..458166ac 100644
--- a/Timeline/ClientApp/src/app/home/OfflineBoard.tsx
+++ b/Timeline/ClientApp/src/app/home/OfflineBoard.tsx
@@ -1,62 +1,62 @@
-import React from 'react';
-import { Link } from 'react-router-dom';
-import { Trans } from 'react-i18next';
-
-import { getAllCachedTimelineNames } from '../data/timeline';
-
-import UserTimelineLogo from '../common/UserTimelineLogo';
-import TimelineLogo from '../common/TimelineLogo';
-
-export interface OfflineBoardProps {
- onReload: () => void;
-}
-
-const OfflineBoard: React.FC<OfflineBoardProps> = ({ onReload }) => {
- const [timelines, setTimelines] = React.useState<string[]>([]);
-
- React.useEffect(() => {
- let subscribe = true;
- void getAllCachedTimelineNames().then((t) => {
- if (subscribe) setTimelines(t);
- });
- return () => {
- subscribe = false;
- };
- });
-
- return (
- <>
- <Trans i18nKey="home.offlinePrompt">
- 0
- <a
- href="#"
- onClick={(e) => {
- onReload();
- e.preventDefault();
- }}
- >
- 1
- </a>
- 2
- </Trans>
- {timelines.map((timeline) => {
- const isPersonal = timeline.startsWith('@');
- const url = isPersonal
- ? `/users/${timeline.slice(1)}`
- : `/timelines/${timeline}`;
- return (
- <div key={timeline} className="timeline-board-item">
- {isPersonal ? (
- <UserTimelineLogo className="icon" />
- ) : (
- <TimelineLogo className="icon" />
- )}
- <Link to={url}>{timeline}</Link>
- </div>
- );
- })}
- </>
- );
-};
-
-export default OfflineBoard;
+import React from "react";
+import { Link } from "react-router-dom";
+import { Trans } from "react-i18next";
+
+import { getAllCachedTimelineNames } from "../data/timeline";
+
+import UserTimelineLogo from "../common/UserTimelineLogo";
+import TimelineLogo from "../common/TimelineLogo";
+
+export interface OfflineBoardProps {
+ onReload: () => void;
+}
+
+const OfflineBoard: React.FC<OfflineBoardProps> = ({ onReload }) => {
+ const [timelines, setTimelines] = React.useState<string[]>([]);
+
+ React.useEffect(() => {
+ let subscribe = true;
+ void getAllCachedTimelineNames().then((t) => {
+ if (subscribe) setTimelines(t);
+ });
+ return () => {
+ subscribe = false;
+ };
+ });
+
+ return (
+ <>
+ <Trans i18nKey="home.offlinePrompt">
+ 0
+ <a
+ href="#"
+ onClick={(e) => {
+ onReload();
+ e.preventDefault();
+ }}
+ >
+ 1
+ </a>
+ 2
+ </Trans>
+ {timelines.map((timeline) => {
+ const isPersonal = timeline.startsWith("@");
+ const url = isPersonal
+ ? `/users/${timeline.slice(1)}`
+ : `/timelines/${timeline}`;
+ return (
+ <div key={timeline} className="timeline-board-item">
+ {isPersonal ? (
+ <UserTimelineLogo className="icon" />
+ ) : (
+ <TimelineLogo className="icon" />
+ )}
+ <Link to={url}>{timeline}</Link>
+ </div>
+ );
+ })}
+ </>
+ );
+};
+
+export default OfflineBoard;