// Metro module 11071 (f11072).
import { useMemo, useRef, useEffect } from "react";
import { ActivityIndicator, ScrollView, View } from "react-native";
import LocaleStore from "../../user_settings/LocaleStore";
import SafetyHubStore from "../SafetyHubStore";
import { SafetyHubAnalyticsActionSource, SafetyHubAnalyticsActions, SafetyHubLinks } from "../SafetyHubConstants";
import { AnalyticEvents } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { Text } from "../../../design/components/Text/native/Text";
import { MemberType, AppealEligibility, ClassificationRequestState } from "../SafetyHubModels";
import { intl, t } from "../../../intl/index.native";
import { useStateFromStores } from "../../../_bundle/Module589";
import TouchableHitBox from "../../../design/void/TouchableHitBox/native/TouchableHitBox";
import Linking from "../../../lib/native/Linking";
import { ShieldIcon } from "../../../design/components/Icon/native/redesign/generated/ShieldIcon";
import { Button } from "../../../design/components/Button/native/Button.native";
import { useSafetyHubClassification } from "../hooks/useSafetyHubClassifications";
import { useSafetyHubAccountStanding } from "../hooks/useSafetyHubAccountStanding";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import { SafeAreaPaddingView } from "../../../components_native/common/SafeAreaView";
import ClassificationEvidence from "./ClassificationEvidence";
import { getClassificationExpiration } from "../SafetyHubUtils";
import AutomatedUnderageAppealModalActionCreators_native from "../AutomatedUnderageAppealModalActionCreators.native";
import MonitoringAgent from "../../monitoring/MonitoringAgent";
import { MetricEvents } from "../../../_bundle/Module5872";
import AppealIngestionModalActionCreators from "./AppealIngestionModalActionCreators";
let useStyles, ClassificationActionsTaken, ClassificationActionsTakenRows, ClassificationGuidance, ClassificationPolicyCard, AppealStatus, LetUsKnow, AppealFooter, ClassificationDetailFooter;
const ClassificationHeader = function ClassificationHeader(props) {
const { classificationTypeText, guildMetadata } = props;
const styles2 = useStyles();
return
{useMemo(() => {
const r9 = {
classification_type: classificationTypeText,
classificationHook: (a0, a1) =>
{a0}
};
return guildMetadata != null ? guildMetadata?.member_type === MemberType.OWNER ? intl.format(t.X1ngSd, {
...r9,
guildName: guildMetadata?.name
}) : intl.format(t.rmpEPD, {
...r9,
guildName: guildMetadata?.name
}) : intl.format(t["39jfOz"], r9);
}, [classificationTypeText, guildMetadata])}
;
};
ClassificationActionsTaken = function ClassificationActionsTaken(props) {
let r31;
L5: {
const { actions, classificationExpiration } = props;
const stateFromStores = useStateFromStores([LocaleStore], () => LocaleStore.locale);
const styles2 = useStyles();
const r12 = actions.filter((action) => action.descriptions.length > 0);
if (r12.length === 0) {
r31 = null;
if (classificationExpiration == null) {
break L5;
}
}
r31 =
{intl.string(t["O2nYk+"])}
{r12.map((item) => )}
{classificationExpiration != null ?
{" "}
•
{intl.format(t.TByIjT, {
expirationDate: classificationExpiration.toLocaleDateString(stateFromStores, {
dateStyle: "medium"
})
})}
: null}
;
}
return r31;
};
ClassificationActionsTakenRows = function ClassificationActionsTakenRows(props) {
const action = props.action;
const styles = useStyles();
return <>
{action.descriptions.map((description, index) =>
{" "}
•
{description}
)}
>;
};
ClassificationGuidance = function ClassificationGuidance(props) {
const { tosLink, communityGuidelinesLink, classificationTypeText: classificationTypeText2, policyExplainerLink: policyExplainerLink2, appealComponent } = props;
return
{intl.string(t["977iei"])}
{intl.format(t["1Z/+aA"], {
tosLink,
communityGuidelinesLink
})}
{appealComponent}
;
};
ClassificationPolicyCard = function ClassificationPolicyCard(props) {
const { classificationTypeText: classificationTypeText2, policyExplainerLink } = props;
const styles2 = useStyles();
return
{intl.format(t.zxUdpj, {
classificationDescription: classificationTypeText2
})}
;
};
AppealStatus = function AppealStatus() {
return
{intl.string(t["I2H0/E"])}
;
};
LetUsKnow = function LetUsKnow(props) {
let c18517_0 = props;
return
{intl.format(t.IFxUaT, {
letUsKnowHook: (a0, a1) =>
{a0}
})}
;
};
AppealFooter = function AppealFooter(props) {
return
{props.hasBeenAppealed ? : }
;
};
ClassificationDetailFooter = function ClassificationDetailFooter(props) {
const onClose2 = props.onClose;
return
;
};
useStyles = createStyles({
root: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWER
},
container: {
display: "flex",
flexDirection: "column",
height: "100%",
paddingTop: Module712.space.PX_16,
paddingHorizontal: Module712.space.PX_16,
gap: Module712.space.PX_32
},
header: {
display: "flex",
textAlign: "center",
alignItems: "center",
flexDirection: "column",
gap: Module712.space.PX_8,
marginBottom: Module712.space.PX_8
},
headerText: {
textAlign: "center",
maxWidth: 260
},
sectionContainer: {
display: "flex",
gap: Module712.space.PX_8
},
actionsTaken: {
display: "flex",
paddingLeft: Module712.space.PX_4,
flexDirection: "column",
gap: Module712.space.PX_8
},
classificationDetailContainer: {
display: "flex",
flexDirection: "column",
gap: Module712.space.PX_32
},
letUsKnowContainer: {
display: "flex",
alignItems: "center"
},
classificationPolicyCard: {
display: "flex",
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
gap: Module712.space.PX_12,
padding: Module712.space.PX_12,
marginTop: Module712.space.PX_4,
flexShrink: 1,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST
},
classificationPolicyCardIcon: {
display: "flex",
alignItems: "center",
justifyContent: "center",
backgroundColor: Module712.colors.BACKGROUND_MOD_STRONG,
width: 32,
height: 32,
borderRadius: Module712.radii.xxl
},
classificationPolicyCardContent: {
flex: 1
},
classificationActionDescription: {
display: "flex",
flexDirection: "row",
gap: Module712.space.PX_8
},
redirectButtonWrapper: {
width: 300,
alignSelf: "center",
marginTop: Module712.space.PX_32
}
});
export default function ConnectedClassificationDetail(props) {
let r123, r127;
let is_violative_content_shown, safetyHubAccountStanding, c18518_8, c18518_9, current, ref;
const { classificationId, source, onClose, onError } = props;
const safetyHubClassification = useSafetyHubClassification(classificationId);
const { classification, isAppealEligible } = safetyHubClassification;
const styles2 = useStyles();
const stateFromStores = useStateFromStores([SafetyHubStore], () => SafetyHubStore.getAppealEligibility());
is_violative_content_shown = classification?.flagged_content != null && (classification == null ? void 0 : classification.flagged_content.length) > 0;
safetyHubAccountStanding = useSafetyHubAccountStanding();
c18518_8 = !!classification?.is_coppa && stateFromStores.includes(AppealEligibility.AGE_VERIFY_ELIGIBLE);
c18518_9 = !!classification?.is_coppa && stateFromStores.includes(AppealEligibility.AGE_VERIFY_GLOBAL_ELIGIBLE);
current = {
accountStanding: safetyHubAccountStanding,
classificationId,
classificationState: safetyHubClassification,
hasFlaggedContent: is_violative_content_shown,
source
};
ref = useRef(current);
useEffect(() => {
ref.current = current;
});
useEffect(() => {
if (classification != null) {
const current2 = ref.current;
const { accountStanding, classificationId: classificationId2, classificationState, hasFlaggedContent } = current2;
let source2 = current2.source;
const SAFETY_HUB_ACTION = AnalyticEvents.SAFETY_HUB_ACTION;
const r22 = {
action: SafetyHubAnalyticsActions.ViewViolationDetail,
account_standing: accountStanding.state,
classification_ids: [Number(classificationId2)],
source: null,
is_violative_content_shown: null,
is_dsa_eligible: null,
violation_type: null
};
if (source2 == null) {
source2 = SafetyHubAnalyticsActionSource.SystemDM;
}
r22.source = source2;
r22.is_violative_content_shown = hasFlaggedContent;
r22.is_dsa_eligible = classificationState.isDsaEligible;
r22.violation_type = classificationState.violationType;
AnalyticsUtils.track(SAFETY_HUB_ACTION, r22);
}
}, [classification]);
if (classification == null && safetyHubClassification.classificationRequestState === ClassificationRequestState.FAILED) {
onError();
r127 = null;
} else {
if (classification == null) {
r123 = ;
} else {
const r91 = [, , , , ,];
let flagged_content = classification.flagged_content;
if (flagged_content == null) {
flagged_content = [];
}
r91[1] = ;
r91[2] = ;
r91[3] = } />;
r91[4] = ;
r123 = {r91};
}
r127 =
{r123}
;
}
return r127;
};