From 739d5b6611c474af97517f0fa71820d4598eb150 Mon Sep 17 00:00:00 2001 From: Vinh Date: Mon, 4 May 2020 17:53:37 +0200 Subject: [PATCH] fix: always show details on moderation card (#2946) --- .../ModerateCard/MarkersContainer.spec.tsx | 16 ---- .../ModerateCard/MarkersContainer.tsx | 36 ++------ .../ModerateCardDetailsContainer.tsx | 90 ++++++++++++------- .../MarkersContainer.spec.tsx.snap | 20 ----- 4 files changed, 65 insertions(+), 97 deletions(-) diff --git a/src/core/client/admin/components/ModerateCard/MarkersContainer.spec.tsx b/src/core/client/admin/components/ModerateCard/MarkersContainer.spec.tsx index 655ca1441..eb66ba735 100644 --- a/src/core/client/admin/components/ModerateCard/MarkersContainer.spec.tsx +++ b/src/core/client/admin/components/ModerateCard/MarkersContainer.spec.tsx @@ -13,9 +13,6 @@ it("renders all markers", () => { const props: PropTypesOf = { comment: { status: "PREMOD", - editing: { - edited: false, - }, revision: { actionCounts: { flag: { @@ -33,11 +30,6 @@ it("renders all markers", () => { }, }, }, - metadata: { - perspective: { - score: 0, - }, - }, }, }, settings: { @@ -58,9 +50,6 @@ it("renders some markers", () => { const props: PropTypesOf = { comment: { status: "PREMOD", - editing: { - edited: false, - }, revision: { actionCounts: { flag: { @@ -78,11 +67,6 @@ it("renders some markers", () => { }, }, }, - metadata: { - perspective: { - score: 1, - }, - }, }, }, settings: { diff --git a/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx b/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx index 486a4332e..83b26ec3c 100644 --- a/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx @@ -17,14 +17,6 @@ interface MarkersContainerProps { settings: MarkersContainer_settings; } -function hasDetails(c: MarkersContainer_comment) { - return c.revision - ? c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_OFFENSIVE + - c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_SPAM > - 0 || c.revision.metadata.perspective - : false; -} - let keyCounter = 0; const markers: Array<( c: MarkersContainer_comment @@ -135,25 +127,15 @@ export const MarkersContainer: React.FunctionComponent = () => markers.map((cb) => cb(props.comment)).filter((m) => m), [markers, props.comment] ); - const doesHaveDetails = useMemo(() => hasDetails(props.comment), [ - props.comment, - ]); - if (elements.length === 0 && !doesHaveDetails) { - return null; - } return ( - ) : null + } > {elements} @@ -166,9 +148,6 @@ const enhanced = withFragmentContainer({ fragment MarkersContainer_comment on Comment { ...ModerateCardDetailsContainer_comment status - editing { - edited - } revision { actionCounts { flag { @@ -186,11 +165,6 @@ const enhanced = withFragmentContainer({ } } } - metadata { - perspective { - score - } - } } } `, diff --git a/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx b/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx index 1a2296d9a..22988a49f 100644 --- a/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx @@ -1,5 +1,10 @@ import { Localized } from "@fluent/react/compat"; -import React, { FunctionComponent, useCallback, useState } from "react"; +import React, { + FunctionComponent, + useCallback, + useMemo, + useState, +} from "react"; import { graphql } from "react-relay"; import { withFragmentContainer } from "coral-framework/lib/relay"; @@ -11,8 +16,8 @@ import { TabBar, } from "coral-ui/components/v2"; -import { ModerateCardDetailsContainer_comment as CommentData } from "coral-admin/__generated__/ModerateCardDetailsContainer_comment.graphql"; -import { ModerateCardDetailsContainer_settings as SettingsData } from "coral-admin/__generated__/ModerateCardDetailsContainer_settings.graphql"; +import { ModerateCardDetailsContainer_comment } from "coral-admin/__generated__/ModerateCardDetailsContainer_comment.graphql"; +import { ModerateCardDetailsContainer_settings } from "coral-admin/__generated__/ModerateCardDetailsContainer_settings.graphql"; import CommentRevisionContainer from "./CommentRevisionContainer"; import FlagDetailsContainer from "./FlagDetailsContainer"; @@ -21,43 +26,46 @@ import LinkDetailsContainer from "./LinkDetailsContainer"; import styles from "./ModerateCardDetailsContainer.css"; interface Props { - comment: CommentData; - settings: SettingsData; + comment: ModerateCardDetailsContainer_comment; + settings: ModerateCardDetailsContainer_settings; onUsernameClick: (id?: string) => void; - hasDetails: boolean; - hasRevisions: boolean; } -type DetailsTabs = "DETAILS" | "HISTORY"; +type DetailsTabs = "INFO" | "HISTORY"; + +function hasFlagDetails(c: ModerateCardDetailsContainer_comment) { + return c.revision + ? c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_OFFENSIVE + + c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_SPAM > + 0 || c.revision.metadata.perspective + : false; +} const ModerateCardDetailsContainer: FunctionComponent = ({ comment, onUsernameClick, settings, - hasDetails, - hasRevisions, }) => { - const [activeTab, setActiveTab] = useState( - hasDetails ? "DETAILS" : "HISTORY" - ); + const [activeTab, setActiveTab] = useState("INFO"); const onTabClick = useCallback((id) => setActiveTab(id as DetailsTabs), [ setActiveTab, ]); + const doesHaveFlagDetails = useMemo(() => hasFlagDetails(comment), [comment]); + const hasRevisions = comment.editing.edited; + return ( - {hasDetails && ( - - - list - - Info - - - - )} + + + list + + Info + + + {hasRevisions && ( @@ -69,15 +77,19 @@ const ModerateCardDetailsContainer: FunctionComponent = ({ )} - {activeTab === "DETAILS" && ( + {activeTab === "INFO" && ( <> -
- + {doesHaveFlagDetails && ( + <> +
+ + + )} )} {activeTab === "HISTORY" && ( @@ -90,6 +102,24 @@ const ModerateCardDetailsContainer: FunctionComponent = ({ const enhanced = withFragmentContainer({ comment: graphql` fragment ModerateCardDetailsContainer_comment on Comment { + editing { + edited + } + revision { + actionCounts { + flag { + reasons { + COMMENT_REPORTED_OFFENSIVE + COMMENT_REPORTED_SPAM + } + } + } + metadata { + perspective { + score + } + } + } ...FlagDetailsContainer_comment ...CommentRevisionContainer_comment ...LinkDetailsContainer_comment diff --git a/src/core/client/admin/components/ModerateCard/__snapshots__/MarkersContainer.spec.tsx.snap b/src/core/client/admin/components/ModerateCard/__snapshots__/MarkersContainer.spec.tsx.snap index 00e63c776..6558e155a 100644 --- a/src/core/client/admin/components/ModerateCard/__snapshots__/MarkersContainer.spec.tsx.snap +++ b/src/core/client/admin/components/ModerateCard/__snapshots__/MarkersContainer.spec.tsx.snap @@ -6,9 +6,6 @@ exports[`renders all markers 1`] = `