Files
discord-decomp/modules/ato_alerts/native/components/LikelyAtoWarningBanner.tsx
T
2026-11-01 12:12:55 +02:00

108 lines
4.5 KiB
TypeScript

// Metro module 10437 (f10438).
import { useEffect, useCallback } from "react";
import { SafetyWarningTypes } from "../../../self_mod/ChannelSafetyWarningsStore";
import { LEARN_MORE_HC_ARTICLE, LIKELY_ATO_MORE_TIPS_MODAL_KEY, getLikelyAtoMoreTips } from "../../Constants";
import { AnalyticEvents } from "../../../../Constants";
import { MuteUntilSeconds } from "../../../user_settings/UserSettingsConstants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { trackCtaEvent, CtaEventTypes, trackViewedEvent } from "../../../self_mod/shared/SafetyWarningUtils";
import { dismissChannelSafetyWarnings } from "../../../self_mod/ChannelSafetyWarningsActionCreators";
import ModalActionCreators from "../../../../actions/ModalActionCreators";
import { handleMuteSettingPress } from "../../../main_tabs_v2/native/sidebar/details/screens/MuteSettingsUtils";
import SafetyToastsActionCreators_native from "../../../safety_common/SafetyToastsActionCreators.native";
import Linking from "../../../../lib/native/Linking";
import SafetyWarningBanner from "../../../self_mod/shared/native/SafetyWarningBanner";
import { intl, t } from "../../../../intl/index.native";
import { Text } from "../../../../design/components/Text/native/Text";
import LikelyAtoMoreTipsModalActionItems from "./LikelyAtoMoreTipsModalActionItems";
let useStyles;
export function LikelyAtoWarningBanner(props) {
let styles, callback, callback2;
const { channelId, warningId, senderId } = props;
styles = void 0;
callback = void 0;
callback2 = void 0;
const handleLearnMore2 = function handleLearnMore() {
trackCtaEvent({
channelId,
warningId,
senderId,
warningType: SafetyWarningTypes.LIKELY_ATO,
cta: CtaEventTypes.USER_MODAL_LEARN_MORE
});
Linking.openURL(LEARN_MORE_HC_ARTICLE);
};
styles = useStyles();
useEffect(() => {
trackViewedEvent(AnalyticEvents.SAFETY_WARNING_VIEWED, {
channelId,
warningId,
senderId,
warningType: SafetyWarningTypes.LIKELY_ATO
});
}, [channelId, warningId, senderId]);
callback = useCallback(() => {
dismissChannelSafetyWarnings(channelId, [warningId]);
ModalActionCreators.popWithKey(LIKELY_ATO_MORE_TIPS_MODAL_KEY);
}, [channelId, warningId]);
callback2 = useCallback((a0) => {
handleMuteSettingPress({
channelId,
guildId: null,
muteDurationSeconds: MuteUntilSeconds.ALWAYS
});
SafetyToastsActionCreators_native.showMuteSuccessToast(senderId, channelId);
trackCtaEvent({
channelId,
warningId,
senderId,
warningType: SafetyWarningTypes.LIKELY_ATO,
cta: a0
});
callback();
}, [channelId, senderId, warningId, callback]);
return <SafetyWarningBanner channelId={channelId} warningId={warningId} senderId={senderId} warningType={SafetyWarningTypes.LIKELY_ATO} header={intl.string(t.R8UsiI)} description={intl.string(t.lI8nQl)} onDismiss={callback} buttons={[{
text: intl.string(t.tC1pvL),
variant: "primary",
onpress: function onpress() {
ModalActionCreators.pushLazy(import("../../../self_mod/stranger_danger/native/components/more_tips_modal/MoreTipsModal"), {
modalKey: LIKELY_ATO_MORE_TIPS_MODAL_KEY,
headerStyle: styles.moreTipsHeader,
channelId,
warningId,
senderId,
description: intl.string(t["/uid3p"]),
safetyTips: getLikelyAtoMoreTips().map((item, index) => <>
<Text key={index} variant="text-md/medium" color="mobile-text-heading-primary">{item.title}</Text>
<Text key={index} variant="text-xs/medium" color="text-subtle">{item.description}</Text>
</>),
actionItems: <LikelyAtoMoreTipsModalActionItems senderId={senderId} handleMutePressed={() => callback2(CtaEventTypes.USER_MODAL_MUTE)} />,
learnMore: <Text variant="text-sm/normal" color="text-link">
{intl.format(t.UkH122, {
learnMoreLink: handleLearnMore2
})}
</Text>
}, LIKELY_ATO_MORE_TIPS_MODAL_KEY);
trackCtaEvent({
channelId,
warningId,
senderId,
warningType: SafetyWarningTypes.LIKELY_ATO,
cta: CtaEventTypes.OPEN_MORE_TIPS
});
}
}, {
text: intl.string(t.ftIK2A),
variant: "secondary",
onpress: () => callback2(CtaEventTypes.USER_BANNER_MUTE)
}]} />;
}
useStyles = createStyles({
moreTipsHeader: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWER,
shadowColor: "transparent"
}
});
export default LikelyAtoWarningBanner;