aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-02-14 17:29:11 +0800
committercrupest <crupest@outlook.com>2021-02-14 17:29:11 +0800
commitfe7587f44296b88c08927d2eae8fda3f375eaa8c (patch)
tree4b073fb0fe0c56de989b6d21de34311d76672c59 /FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx
parent6791c26e28b5113796fdf34e29f7affe12ee556e (diff)
downloadtimeline-fe7587f44296b88c08927d2eae8fda3f375eaa8c.tar.gz
timeline-fe7587f44296b88c08927d2eae8fda3f375eaa8c.tar.bz2
timeline-fe7587f44296b88c08927d2eae8fda3f375eaa8c.zip
...
Diffstat (limited to 'FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx')
-rw-r--r--FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx15
1 files changed, 10 insertions, 5 deletions
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx
index 35d091af..2f5d3989 100644
--- a/FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePostContentView.tsx
@@ -7,6 +7,7 @@ import { getHttpTimelineClient, HttpTimelinePostInfo } from "@/http/timeline";
import { useUser } from "@/services/user";
import Skeleton from "../common/Skeleton";
+import LoadFailReload from "../common/LoadFailReload";
const TextView: React.FC<TimelinePostContentViewProps> = (props) => {
const { post, className, style } = props;
@@ -14,6 +15,8 @@ const TextView: React.FC<TimelinePostContentViewProps> = (props) => {
const [text, setText] = React.useState<string | null>(null);
const [error, setError] = React.useState<"offline" | "error" | null>(null);
+ const [reloadKey, setReloadKey] = React.useState<number>(0);
+
React.useEffect(() => {
let subscribe = true;
@@ -40,14 +43,15 @@ const TextView: React.FC<TimelinePostContentViewProps> = (props) => {
return () => {
subscribe = false;
};
- }, [post.timelineName, post.id]);
+ }, [post.timelineName, post.id, reloadKey]);
if (error != null) {
- // TODO: i18n
return (
- <div className={className} style={style}>
- Error!
- </div>
+ <LoadFailReload
+ className={className}
+ style={style}
+ onReload={() => setReloadKey(reloadKey + 1)}
+ />
);
} else if (text == null) {
return <Skeleton />;
@@ -109,6 +113,7 @@ const TimelinePostContentView: React.FC<TimelinePostContentViewProps> = (
return <View post={post} className={className} style={style} />;
} else {
// TODO: i18n
+ console.error("Unknown post type", post);
return <div>Error, unknown post type!</div>;
}
};