1 import { None } from "@sniptt/monads";
2 import { Component, linkEvent } from "inferno";
3 import { T } from "inferno-i18next-dess";
5 CommentNode as CommentNodeI,
10 } from "lemmy-js-client";
11 import { i18n } from "../../i18next";
12 import { CommentViewType } from "../../interfaces";
13 import { WebSocketService } from "../../services";
14 import { auth, wsClient } from "../../utils";
15 import { Icon } from "../common/icon";
16 import { PersonListing } from "../person/person-listing";
17 import { CommentNode } from "./comment-node";
19 interface CommentReportProps {
20 report: CommentReportView;
23 export class CommentReport extends Component<CommentReportProps, any> {
24 constructor(props: any, context: any) {
25 super(props, context);
29 let r = this.props.report;
30 let comment = r.comment;
31 let tippyContent = i18n.t(
32 r.comment_report.resolved ? "unresolve_report" : "resolve_report"
35 // Set the original post data ( a troll could change it )
36 comment.content = r.comment_report.original_comment_text;
38 let comment_view: CommentView = {
40 creator: r.comment_creator,
42 community: r.community,
43 creator_banned_from_community: r.creator_banned_from_community,
45 subscribed: SubscribedType.NotSubscribed,
47 creator_blocked: false,
51 let node: CommentNodeI = {
61 viewType={CommentViewType.Flat}
64 enableDownvotes={true}
72 {i18n.t("reporter")}: <PersonListing person={r.creator} />
75 {i18n.t("reason")}: {r.comment_report.reason}
80 {r.comment_report.resolved ? (
81 <T i18nKey="resolved_by">
83 <PersonListing person={resolver} />
86 <T i18nKey="unresolved_by">
88 <PersonListing person={resolver} />
96 className="btn btn-link btn-animate text-muted py-0"
97 onClick={linkEvent(this, this.handleResolveReport)}
98 data-tippy-content={tippyContent}
99 aria-label={tippyContent}
103 classes={`icon-inline ${
104 r.comment_report.resolved ? "text-success" : "text-danger"
112 handleResolveReport(i: CommentReport) {
113 let form = new ResolveCommentReport({
114 report_id: i.props.report.comment_report.id,
115 resolved: !i.props.report.comment_report.resolved,
116 auth: auth().unwrap(),
118 WebSocketService.Instance.send(wsClient.resolveCommentReport(form));