aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx')
-rw-r--r--FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx26
1 files changed, 20 insertions, 6 deletions
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx
index a2ae72cf..7fd98310 100644
--- a/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePostView.tsx
@@ -2,10 +2,13 @@ import React from "react";
import clsx from "clsx";
import { Link } from "react-router-dom";
-import { HttpTimelinePostInfo } from "@/http/timeline";
+import { getHttpTimelineClient, HttpTimelinePostInfo } from "@/http/timeline";
+
+import { pushAlert } from "@/services/alert";
import UserAvatar from "../common/user/UserAvatar";
import TimelineLine from "./TimelineLine";
+import TimelinePostContentView from "./TimelinePostContentView";
import TimelinePostDeleteConfirmDialog from "./TimelinePostDeleteConfirmDialog";
export interface TimelinePostViewProps {
@@ -13,10 +16,11 @@ export interface TimelinePostViewProps {
current?: boolean;
className?: string;
style?: React.CSSProperties;
+ onDeleted?: () => void;
}
const TimelinePostView: React.FC<TimelinePostViewProps> = (props) => {
- const { post, className, style } = props;
+ const { post, className, style, onDeleted } = props;
const current = props.current === true;
const [
@@ -25,8 +29,6 @@ const TimelinePostView: React.FC<TimelinePostViewProps> = (props) => {
] = React.useState<boolean>(false);
const [deleteDialog, setDeleteDialog] = React.useState<boolean>(false);
- // TODO: Load content.
-
return (
<div
className={clsx("timeline-item", current && "current", className)}
@@ -59,7 +61,9 @@ const TimelinePostView: React.FC<TimelinePostViewProps> = (props) => {
</span>
</span>
</div>
- <div className="timeline-content">{/** TODO: Load content. */}</div>
+ <div className="timeline-content">
+ <TimelinePostContentView post={post} />
+ </div>
{operationMaskVisible ? (
<div
className="position-absolute position-lt w-100 h-100 mask d-flex justify-content-center align-items-center"
@@ -84,7 +88,17 @@ const TimelinePostView: React.FC<TimelinePostViewProps> = (props) => {
setOperationMaskVisible(false);
}}
onConfirm={() => {
- // TODO: Implement this!
+ void getHttpTimelineClient()
+ .deletePost(post.timelineName, post.id)
+ .then(onDeleted, () => {
+ pushAlert({
+ type: "danger",
+ message: {
+ type: "i18n",
+ key: "timeline.deletePostFailed",
+ },
+ });
+ });
}}
/>
) : null}