1 import { Component, linkEvent } from "inferno";
2 import { T } from "inferno-i18next-dess";
3 import { PostReportView, PostView, ResolvePostReport } from "lemmy-js-client";
4 import { i18n } from "../../i18next";
5 import { WebSocketService } from "../../services";
6 import { myAuth, wsClient } from "../../utils";
7 import { Icon } from "../common/icon";
8 import { PersonListing } from "../person/person-listing";
9 import { PostListing } from "./post-listing";
11 interface PostReportProps {
12 report: PostReportView;
15 export class PostReport extends Component<PostReportProps, any> {
16 constructor(props: any, context: any) {
17 super(props, context);
21 const r = this.props.report;
22 const resolver = r.resolver;
24 const tippyContent = i18n.t(
25 r.post_report.resolved ? "unresolve_report" : "resolve_report"
28 // Set the original post data ( a troll could change it )
29 post.name = r.post_report.original_post_name;
30 post.url = r.post_report.original_post_url;
31 post.body = r.post_report.original_post_body;
32 const pv: PostView = {
34 creator: r.post_creator,
35 community: r.community,
36 creator_banned_from_community: r.creator_banned_from_community,
38 subscribed: "NotSubscribed",
41 creator_blocked: false,
51 enableDownvotes={true}
59 {i18n.t("reporter")}: <PersonListing person={r.creator} />
62 {i18n.t("reason")}: {r.post_report.reason}
66 {r.post_report.resolved ? (
67 <T i18nKey="resolved_by">
69 <PersonListing person={resolver} />
72 <T i18nKey="unresolved_by">
74 <PersonListing person={resolver} />
80 className="btn btn-link btn-animate text-muted py-0"
81 onClick={linkEvent(this, this.handleResolveReport)}
82 data-tippy-content={tippyContent}
83 aria-label={tippyContent}
87 classes={`icon-inline ${
88 r.post_report.resolved ? "text-success" : "text-danger"
96 handleResolveReport(i: PostReport) {
97 const auth = myAuth();
99 const form: ResolvePostReport = {
100 report_id: i.props.report.post_report.id,
101 resolved: !i.props.report.post_report.resolved,
104 WebSocketService.Instance.send(wsClient.resolvePostReport(form));