From 790fc48e013ecd424d73e45072607927a3a43a70 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 13 Feb 2021 15:31:49 +0800 Subject: ... --- .../app/views/timeline-common/TimelinePostView.tsx | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx (limited to 'FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx') diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx new file mode 100644 index 00000000..a2ae72cf --- /dev/null +++ b/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx @@ -0,0 +1,95 @@ +import React from "react"; +import clsx from "clsx"; +import { Link } from "react-router-dom"; + +import { HttpTimelinePostInfo } from "@/http/timeline"; + +import UserAvatar from "../common/user/UserAvatar"; +import TimelineLine from "./TimelineLine"; +import TimelinePostDeleteConfirmDialog from "./TimelinePostDeleteConfirmDialog"; + +export interface TimelinePostViewProps { + post: HttpTimelinePostInfo; + current?: boolean; + className?: string; + style?: React.CSSProperties; +} + +const TimelinePostView: React.FC = (props) => { + const { post, className, style } = props; + const current = props.current === true; + + const [ + operationMaskVisible, + setOperationMaskVisible, + ] = React.useState(false); + const [deleteDialog, setDeleteDialog] = React.useState(false); + + // TODO: Load content. + + return ( +
+ +
+ {post.editable ? ( + { + setOperationMaskVisible(true); + e.stopPropagation(); + }} + /> + ) : null} +
+ + + + + + {post.author.nickname} + + {new Date(post.time).toLocaleTimeString()} + + + +
+
{/** TODO: Load content. */}
+ {operationMaskVisible ? ( +
{ + setOperationMaskVisible(false); + }} + > + { + setDeleteDialog(true); + e.stopPropagation(); + }} + /> +
+ ) : null} +
+ {deleteDialog ? ( + { + setDeleteDialog(false); + setOperationMaskVisible(false); + }} + onConfirm={() => { + // TODO: Implement this! + }} + /> + ) : null} +
+ ); +}; + +export default TimelinePostView; -- cgit v1.2.3