aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/pages/timeline/view/ImagePostView.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-09-14 18:58:44 +0800
committercrupest <crupest@outlook.com>2023-09-20 18:50:08 +0800
commitbdc69c18c1986544497b6974ffe5d8e073e4be6d (patch)
tree4283f2fcc4af9b8849588e8db21e4f52d136a1e7 /FrontEnd/src/pages/timeline/view/ImagePostView.tsx
parentaef14be13c3bd9e93eeea598dbfbf707ba98d448 (diff)
downloadtimeline-bdc69c18c1986544497b6974ffe5d8e073e4be6d.tar.gz
timeline-bdc69c18c1986544497b6974ffe5d8e073e4be6d.tar.bz2
timeline-bdc69c18c1986544497b6974ffe5d8e073e4be6d.zip
...
Diffstat (limited to 'FrontEnd/src/pages/timeline/view/ImagePostView.tsx')
-rw-r--r--FrontEnd/src/pages/timeline/view/ImagePostView.tsx38
1 files changed, 38 insertions, 0 deletions
diff --git a/FrontEnd/src/pages/timeline/view/ImagePostView.tsx b/FrontEnd/src/pages/timeline/view/ImagePostView.tsx
new file mode 100644
index 00000000..85179475
--- /dev/null
+++ b/FrontEnd/src/pages/timeline/view/ImagePostView.tsx
@@ -0,0 +1,38 @@
+import { useEffect, useState } from "react";
+import classNames from "classnames";
+
+import {
+ HttpTimelinePostInfo,
+ getHttpTimelineClient,
+} from "~src/http/timeline";
+
+import "./ImagePostView.css";
+
+interface ImagePostViewProps {
+ post?: HttpTimelinePostInfo;
+ className?: string;
+}
+
+export default function ImagePostView({ post, className }: ImagePostViewProps) {
+ const [url, setUrl] = useState<string | null>(null);
+
+ useEffect(() => {
+ if (post) {
+ setUrl(
+ getHttpTimelineClient().generatePostDataUrl(
+ post.timelineOwnerV2,
+ post.timelineNameV2,
+ post.id,
+ ),
+ );
+ } else {
+ setUrl(null);
+ }
+ }, [post]);
+
+ return (
+ <div className={classNames("timeline-view-image-container", className)}>
+ <img src={url ?? undefined} className="timeline-view-image" />
+ </div>
+ );
+}