This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,31 @@
// Metro module 3864 (f3865).
import { DmSpamFilterV2 } from "../../../_bundle/Module1306";
const r19 = {
VIEW: 0,
0: "VIEW",
DISMISS: 1,
1: "DISMISS",
CHANGE_SETTING: 2,
2: "CHANGE_SETTING"
};
const r23 = {
DISABLED: 0,
0: "DISABLED",
NON_FRIENDS: 1,
1: "NON_FRIENDS",
FRIENDS_AND_NON_FRIENDS: 2,
2: "FRIENDS_AND_NON_FRIENDS"
};
const r25 = {
DISABLED: 0,
0: "DISABLED",
NON_FRIENDS: 1,
1: "NON_FRIENDS",
FRIENDS_AND_NON_FRIENDS: 2,
2: "FRIENDS_AND_NON_FRIENDS"
};
const map = new Map([[r25.DISABLED, DmSpamFilterV2.DISABLED], [r25.NON_FRIENDS, DmSpamFilterV2.NON_FRIENDS], [r25.FRIENDS_AND_NON_FRIENDS, DmSpamFilterV2.FRIENDS_AND_NON_FRIENDS]]);
export { r19 as DMSafetyCoachmarkActions };
export { r23 as DmSpamFilterTypes };
export { r25 as ExplicitContentFilterTypes };
export { map as ExplicitContentFilterToDmSpamFilterV2 };
@@ -0,0 +1,10 @@
// Metro module 14668 (f14669).
import { DefaultGuildsRestricted, DefaultGuildsRestrictedV2 } from "../UserSettings";
export function useDefaultGuildsRestricted() {
const setting = DefaultGuildsRestricted.useSetting();
let r13 = DefaultGuildsRestrictedV2.useSetting();
if (r13 == null) {
r13 = !!setting || setting;
}
return r13;
}
@@ -0,0 +1,26 @@
// Metro module 14661 (f14662).
import { create } from "../../../_bundle/Module644";
let c10344_0 = {
selectedGuildId: "0"
};
let c10344_1 = create((c21286_0) => ({
...c10344_0,
setSelectedGuildId: (a0) => {
c21286_0({
selectedGuildId: a0
});
},
reset: () => {
c21286_0(c10344_0);
}
}));
export const GUILD_SELECT_ALL_SERVERS_OPTION_ID = "0";
export { c10344_1 as useUserSafetySettingsSelectedGuildStore };
export function setSelectedGuildId(a0) {
return c10344_1.setState({
selectedGuildId: a0
});
}
export function getSelectedGuildId() {
return c10344_1.getState().selectedGuildId;
}
@@ -0,0 +1,89 @@
// Metro module 14657 (f14658).
import { useEffect, useMemo } from "react";
import ConsentStore from "../../../../stores/ConsentStore";
import { MobileSetting } from "../../core/native/SettingsConstants";
import { HelpdeskArticles, UserSettingsSections } from "../../../../Constants";
import { intl, t } from "../../../../intl/index.native";
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
import { getSecureFramesHelpdeskArticle } from "../../../rtc/SecureFramesUtils";
import { useStackNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
import { fetchConsents } from "../../../../actions/ConsentActionCreators";
import { fetchHarvestStatus } from "../../defs/native/RequestYourDataSetting";
import { createList } from "../../../settings/native/renderer/SettingBuilders";
import SettingsScreenNotices, { SettingsScreen } from "./SettingsScreenNotices";
import SettingLayout from "../../../settings/native/renderer/SettingLayout";
import { HermesBuiltin } from "../../../../_hermes/prelude";
export default function DataAndPrivacySettings() {
let c21281_1;
const stackNavigation = useStackNavigation();
const stackNavigation2 = stackNavigation;
const r32 = [{
settings: [MobileSetting.USE_DATA_TO_IMPROVE_DISCORD],
subLabel: intl.format(t["igTSG/"], {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.DATA_PRIVACY_CONTROLS)
})
}, {
settings: [MobileSetting.USE_DATA_TO_CUSTOMIZE_DISCORD],
subLabel: intl.format(t["eQL/Mr"], {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.DATA_USED_FOR_RECOMMENDED)
})
}, {
settings: [MobileSetting.USE_DATA_FOR_QUESTS],
subLabel: intl.format(t.cf9mvV, {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.QUESTS_PRIVACY_CONTROLS)
})
}, {
settings: [MobileSetting.USE_DATA_FOR_QUESTS_3P],
subLabel: intl.format(t["2QFDU/"], {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.QUESTS_PRIVACY_CONTROLS)
})
}];
r32.push({
label: intl.string(t.BG7QsQ),
settings: [MobileSetting.REQUEST_YOUR_DATA],
subLabel: intl.format(t.P3kNfr, {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.GDPR_REQUEST_DATA)
})
});
r32.push({
settings: [MobileSetting.PROFILE_PRIVACY],
subLabel: intl.format(t.N1P5gE, {
onClick: () => stackNavigation2.navigate(UserSettingsSections.CONTENT_AND_SOCIAL)
})
});
r32.push({
settings: [MobileSetting.NOTIFY_FRIENDS_ON_PROFILE_UPDATE]
});
c21281_1 = r32;
useEffect(() => {
if (!ConsentStore.fetchedConsents) {
fetchConsents();
}
fetchHarvestStatus();
}, []);
return <>
<SettingsScreenNotices screen={SettingsScreen.DATA_AND_PRIVACY} />
<SettingLayout node={useMemo(() => {
const sections = [,];
const r1 = HermesBuiltin.arraySpread(sections, c21281_1, 0);
sections[r1] = {
label: intl.string(t.Me5lVK),
settings: [MobileSetting.DATA_AND_PRIVACY_SECURE_FRAMES_PERSISTENT_CODES, MobileSetting.ENCRYPTION_VERIFIED_DEVICES],
subLabel: intl.format(t["/6sFWa"], {
helpArticle: getSecureFramesHelpdeskArticle()
})
};
const stackNavigation3 = stackNavigation;
HermesBuiltin.arraySpread(sections, [{
label: intl.string(t["+uHbqE"]),
settings: [MobileSetting.SAFETY_TERMS_OF_SERVICE, MobileSetting.SAFETY_PRIVACY_POLICY],
subLabel: intl.format(t.R5N31P, {
onClick: () => stackNavigation3.navigate(UserSettingsSections.ACCOUNT)
})
}], r1 + 1);
return createList({
sections
});
}, [stackNavigation, r32])} />
</>;
};
@@ -0,0 +1,145 @@
// Metro module 13893 (f13894).
import { memo, useState } from "react";
import { ScrollView, View } from "react-native";
import { HelpdeskArticles } from "../../../../Constants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
import { intl, t } from "../../../../intl/index.native";
import { TableCheckboxRow } from "../../../../design/components/TableRow/native/TableCheckboxRow.native";
import { Text } from "../../../../design/components/Text/native/Text";
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
import { TableRowGroup } from "../../../../design/components/TableRow/native/TableRowGroup.native";
import { Button } from "../../../../design/components/Button/native/Button.native";
import AlertActionCreators from "../../../../actions/AlertActionCreators";
import { requestDataHarvest } from "../../../harvester/DataHarvestActionCreators";
let c9690_10 = {
USERS: "Account",
MESSAGES: "Messages",
GUILDS: "Servers",
ANALYTICS: "Analytics",
ACTIVITIES: "Activities",
ADS: "Ads",
ZENDESK: "Zendesk"
};
const useStyles = createStyles({
content: {
padding: 16
},
header: {
marginBottom: 8
},
title: {
marginBottom: 8
},
description: {
marginBottom: 0
},
checkboxContainer: {
marginBottom: 16
}
});
const r48 = memo(function() {
const styles = useStyles();
const navigation = useNavigation();
const [loading, setState] = useState(false);
const r33 = {};
r33[c9690_10.USERS] = {
value: c9690_10.USERS,
label: intl.string(t["rfe/x8"]),
checked: false
};
r33[c9690_10.ANALYTICS] = {
value: c9690_10.ANALYTICS,
label: intl.string(t["j+d6RN"]),
checked: false
};
r33[c9690_10.ACTIVITIES] = {
value: c9690_10.ACTIVITIES,
label: intl.string(t.KO88BS),
checked: false
};
r33[c9690_10.ADS] = {
value: c9690_10.ADS,
label: intl.string(t.wb7QJ3),
checked: false
};
r33[c9690_10.MESSAGES] = {
value: c9690_10.MESSAGES,
label: intl.string(t["0dO1t+"]),
checked: false
};
r33[c9690_10.GUILDS] = {
value: c9690_10.GUILDS,
label: intl.string(t.JN9c36),
checked: false
};
r33[c9690_10.ZENDESK] = {
value: c9690_10.ZENDESK,
label: intl.string(t.yaLeEB),
checked: false
};
const [state, setState2] = useState(r33);
const r123 = Object.keys(state).map((item, index, a2) => {
const r12 = state[item];
const { label, checked: checked2 } = r12;
return <TableCheckboxRow key={item} label={label} checked={checked2} onPress={(checked) => {
setState2((prevState2) => {
const r0 = {
...prevState2
};
r0[item] = {
...prevState2[item],
checked
};
return r0;
});
}} start={index === 0} end={index === a2.length - 1} />;
});
return <ScrollView style={styles.content}>
<View style={styles.header}>
<Text style={styles.title} variant="heading-xl/extrabold" color="mobile-text-heading-primary">
{intl.string(t.jxXMEz)}
</Text>
<Text style={styles.description} variant="text-sm/medium" color="text-default">
{intl.format(t.vtRhDA, {
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.GDPR_PACKAGE_CONTENTS)
})}
</Text>
</View>
<View style={styles.checkboxContainer}>
<TableRowGroup title="" hasIcons={false}>{r123}</TableRowGroup>
</View>
<Button text={intl.string(t.NYgNg9)} onPress={function onPress() {
const r7 = Object.keys(state).filter((item) => state[item].checked).map((item) => state[item].value);
if (r7.length !== 0) {
setState(true);
requestDataHarvest(r7).then((result) => {
if (result != null && result.body != null) {
AlertActionCreators.show({
title: intl.string(t.i2iul5),
body: intl.string(t["6Nmv4i"])
});
navigation.pop();
} else {
AlertActionCreators.show({
title: intl.string(t.OjbtDm),
body: intl.string(t["0F5Jyt"])
});
}
}, (a0) => {
const body = a0?.message || (a0 == null ? void 0 : a0.body?.message) || intl.string(t["0F5Jyt"]);
AlertActionCreators.show({
title: intl.string(t.OjbtDm),
body
});
}).finally(() => setState(false));
} else {
AlertActionCreators.show({
title: intl.string(t.OjbtDm),
body: intl.string(t.W1Rw3D)
});
}
}} loading={loading} />
</ScrollView>;
});
export default r48;
@@ -0,0 +1,18 @@
// Metro module 13892 (f13893).
import { memo } from "react";
import { View, StyleSheet } from "react-native";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import RequestDataContent from "./RequestDataContent";
const useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
...StyleSheet.absoluteFillObject
}
});
const r38 = memo(function() {
return <View style={useStyles().container}>
<RequestDataContent />
</View>;
});
export default r38;
@@ -0,0 +1,93 @@
// Metro module 14662 (f14663).
import { useState, useCallback, useMemo } from "react";
import GuildStore from "../../../../stores/GuildStore";
import SortedGuildStore from "../../../../stores/SortedGuildStore";
import { GUILD_SELECT_ALL_SERVERS_OPTION_ID, setSelectedGuildId, useUserSafetySettingsSelectedGuildStore } from "../UserSettingsSafetySelectedGuildStore";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { SelectOptionType } from "../../../interaction_components/InteractionComponentTypes";
import { dangerouslyConstructGuildRecordFromUntypedObject } from "../../../../utils/GuildRecordUtils";
import { intl, t } from "../../../../intl/index.native";
import { useStateFromStores } from "../../../../_bundle/Module589";
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
import SelectComponentActionSheet from "../../../interaction_components/native/components/SelectComponentActionSheet";
import { GuildSelectDefaultIcon } from "../../../settings/native/renderer/SettingRenderer";
import GuildIcon, { GuildIconSizes } from "../../../guild/native/GuildIcon";
import AutocompleteUtils from "../../../../utils/AutocompleteUtils";
const useStyles = createStyles({
iconContainer: {
marginRight: Module712.space.PX_12
}
});
export default function SettingsPrivacyAndSafetyGuildSelectActionSheet() {
let c21287_1, callback;
const styles = useStyles();
const [state, onQueryChange] = useState("");
const selectedGuildId = useUserSafetySettingsSelectedGuildStore().selectedGuildId;
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(selectedGuildId));
const r36 = selectedGuildId !== GUILD_SELECT_ALL_SERVERS_OPTION_ID && stateFromStores != null ? {
type: SelectOptionType.GUILD,
guild: stateFromStores,
label: stateFromStores.name,
value: stateFromStores.id
} : {
type: SelectOptionType.GUILD,
guild: dangerouslyConstructGuildRecordFromUntypedObject({
id: GUILD_SELECT_ALL_SERVERS_OPTION_ID,
name: intl.string(t["32u1Dx"])
}),
label: intl.string(t["32u1Dx"]),
value: GUILD_SELECT_ALL_SERVERS_OPTION_ID
};
const submitSelection = function submitSelection() {
return ActionSheetActionCreators.hideActionSheet();
};
c21287_1 = r36;
const selectionActionComponent = {
maxValues: 1,
minValues: 1,
placeholder: intl.string(t["ZImm/x"])
};
callback = useCallback((a0) => {
const r35 = [{
type: SelectOptionType.GUILD,
guild: dangerouslyConstructGuildRecordFromUntypedObject({
id: GUILD_SELECT_ALL_SERVERS_OPTION_ID,
name: intl.string(t["32u1Dx"])
}),
label: intl.string(t["32u1Dx"]),
value: GUILD_SELECT_ALL_SERVERS_OPTION_ID
}];
return a0.length === 0 ? SortedGuildStore.getFlattenedGuildIds().reduce((acc, item) => {
const guild = GuildStore.getGuild(item);
if (guild != null) {
acc.push({
type: SelectOptionType.GUILD,
value: guild.id,
label: guild.name,
guild
});
}
return acc;
}, r35) : AutocompleteUtils.queryGuilds({
query: a0
}).map(({ record }) => ({
type: SelectOptionType.GUILD,
value: record.id,
label: record.name,
guild: record
}));
}, []);
return <SelectComponentActionSheet onPressOptionItem={function onPressOptionItem(event, a1) {
setSelectedGuildId(a1.guild.id);
ActionSheetActionCreators.hideActionSheet();
}} renderHeaderIcon={function renderHeaderIcon(a0) {
return a0.value === GUILD_SELECT_ALL_SERVERS_OPTION_ID ? <GuildSelectDefaultIcon size="xs" /> : <GuildIcon guild={a0.guild} size={GuildIconSizes.XSMALL} />;
}} renderIcon={function renderIcon(a0) {
return a0.value === GUILD_SELECT_ALL_SERVERS_OPTION_ID ? <GuildSelectDefaultIcon /> : <GuildIcon guild={a0.guild} size={GuildIconSizes.SMALL_32} />;
}} iconContainerStyle={styles.iconContainer} selectionActionComponent={selectionActionComponent} options={useMemo(() => callback(state), [state, callback])} selectedCount={1} selectedOptions={[r36]} isSelected={function isSelected(a0) {
return a0.value === c21287_1.value;
}} submitSelection={submitSelection} onQueryChange={onQueryChange} itemAccessibilityLabel={function itemAccessibilityLabel(a0) {
return a0.label;
}} allowEmpty={false} expanded />;
};
@@ -0,0 +1,65 @@
// Metro module 13846 (f13847).
import { useMemo } from "react";
import { View } from "react-native";
import UserStore from "../../../../stores/UserStore";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { isParentallyControlled } from "../../../parent_tools/FamilyCenterUtils";
import FamilyCenterSettingsNotice from "../../family_center/native/FamilyCenterSettingsNotice";
import { SensitiveContentFiltersTeenNotice } from "../../content_and_social/native/SensitiveContentFiltersNotices";
import { isFeatureAgeGated } from "../../../regional_feature_config/RegionalFeatureConfigUtils";
import { AgeGatedFeature } from "../../../../_bundle/Module5013";
import { isAgeVerified } from "../../../age_assurance/AgeVerificationUtils";
import AgeConfirmationNotice from "../../content_and_social/native/AgeConfirmationNotice";
const useStyles = createStyles({
noticeContainer: {
marginHorizontal: Module712.space.PX_16,
marginTop: Module712.space.PX_16
}
});
const r37 = {
SENSITIVE_CONTENT_FILTERS: "SENSITIVE_CONTENT_FILTERS",
CONTENT_AND_SOCIAL: "CONTENT_AND_SOCIAL",
DATA_AND_PRIVACY: "DATA_AND_PRIVACY"
};
let c9646_7 = {
SENSITIVE_CONTENT_FILTERS: [{
order: 100,
predicate: isParentallyControlled,
Component: FamilyCenterSettingsNotice
}, {
order: 300,
predicate: () => UserStore.getCurrentUser()?.nsfwAllowed === false,
Component: SensitiveContentFiltersTeenNotice
}, {
order: 200,
predicate: () => isFeatureAgeGated(AgeGatedFeature.REACTIVE_CHECK) && !isAgeVerified(),
Component: AgeConfirmationNotice
}],
CONTENT_AND_SOCIAL: [{
order: 100,
predicate: isParentallyControlled,
Component: FamilyCenterSettingsNotice
}, {
order: 200,
predicate: () => isFeatureAgeGated(AgeGatedFeature.REACTIVE_CHECK) && !isAgeVerified(),
Component: AgeConfirmationNotice
}],
DATA_AND_PRIVACY: [{
order: 100,
predicate: isParentallyControlled,
Component: FamilyCenterSettingsNotice
}]
};
export default function SettingsScreenNotices(props) {
const screen = props.screen;
const styles = useStyles();
const Memo = useMemo(() => {
const r15 = c9646_7[screen].filter((item) => item.predicate()).sort((a, b) => a.order - b.order).map((item) => item.Component);
return r15.length !== 0 ? r15[0] : null;
}, [screen]);
return Memo != null ? <View style={styles.noticeContainer}>
<Memo key={screen} />
</View> : null;
};
export { r37 as SettingsScreen };
@@ -0,0 +1,129 @@
// Metro module 14647 (f14648).
import { useEffect, useCallback, useMemo } from "react";
import { View } from "react-native";
import UserStore from "../../../../stores/UserStore";
import { UserSettingsSections } from "../../../../Constants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { useStateFromStores } from "../../../../_bundle/Module589";
import { useSecureFramesUserVerifiedKeys } from "../../../rtc/hooks/useSecureFramesUserVerifiedKeys";
import UserUtils from "../../../../utils/UserUtils";
import { getUser } from "../../../../actions/UserActionCreators";
import useAnalyticsLocations from "../../../app_analytics/useAnalyticsLocations";
import showUserProfileActionSheet from "../../../user_profile/native/showUserProfileActionSheet";
import { TableRow } from "../../../../design/components/TableRow/native/TableRow.native";
import { Avatar, AvatarSizes } from "../../../../design/void/native";
import { intl, t } from "../../../../intl/index.native";
import { TableRowArrow } from "../../../../design/components/TableRow/native/TableRowArrow.native";
import { useToken } from "../../../../design/tokens/native/useToken";
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
import { useSecureFramesVerifiedUserIds } from "../../../rtc/hooks/useSecureFramesVerifiedUsers";
import { Text } from "../../../../design/components/Text/native/Text";
import { FlashList } from "../../../../_bundle/noop_6676";
import { getSecureFramesVerifiedDevicesHelpdeskArticle, getSecureFramesHelpdeskArticle } from "../../../rtc/SecureFramesUtils";
let useStyles, c10330_10, renderItem, getItemType, keyExtractor, SettingsSecureFramesFooter;
const UserListItem = function UserListItem(props) {
let analyticsLocations;
const { userId, start, end, onPress } = props;
analyticsLocations = void 0;
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getUser(userId));
const secureFramesUserVerifiedKeys = useSecureFramesUserVerifiedKeys(userId);
const formattedName = UserUtils.getFormattedName(stateFromStores);
useEffect(() => {
getUser(userId);
}, [userId]);
const callback2 = useCallback(() => {
onPress(userId);
}, [onPress, userId]);
analyticsLocations = useAnalyticsLocations().analyticsLocations;
const callback3 = useCallback(() => {
showUserProfileActionSheet({
userId,
sourceAnalyticsLocations: analyticsLocations
});
}, [analyticsLocations, userId]);
return <TableRow icon={stateFromStores != null && <Avatar user={stateFromStores} guildId={void 0} size={AvatarSizes.REFRESH_MEDIUM_32} />} subLabel={intl.formatToPlainString(t["/MBjYF"], {
count: secureFramesUserVerifiedKeys.length
})} label={formattedName} start={start} end={end} onPress={callback2} onLongPress={callback3} trailing={<TableRowArrow />} />;
};
renderItem = function renderItem({ item }) {
if (item.type === c10330_10.USER) {
return <UserListItem {...item} />;
}
};
getItemType = function getItemType(a0) {
return a0.type;
};
keyExtractor = function keyExtractor(a0) {
if (a0.type === c10330_10.USER) {
return a0.userId;
}
};
SettingsSecureFramesFooter = function SettingsSecureFramesFooter() {
let secureFramesVerifiedUserIds;
const styles = useStyles();
const token = useToken(Module712.modules.mobile.TABLE_ROW_HEIGHT);
const navigation = useNavigation();
const callback = useCallback((a0) => {
navigation.navigate(UserSettingsSections.SECURE_FRAMES_VERIFIED_DEVICES, {
userId: a0
});
}, [navigation]);
secureFramesVerifiedUserIds = useSecureFramesVerifiedUserIds();
const memo = useMemo(() => secureFramesVerifiedUserIds.map((secureFramesVerifiedUserId, index) => ({
type: c10330_10.USER,
userId: secureFramesVerifiedUserId,
onPress: callback,
start: index === 0,
end: index === secureFramesVerifiedUserIds.length - 1
})), [callback, secureFramesVerifiedUserIds]);
return secureFramesVerifiedUserIds.length !== 0 ? <View style={styles.list}>
<Text variant="text-sm/semibold" color="text-default">
{intl.string(t["5b3FNI"])}
</Text>
<View style={{
minHeight: secureFramesVerifiedUserIds.length * token
}}>
<FlashList keyExtractor={keyExtractor} getItemType={getItemType} renderItem={renderItem} data={memo} />
</View>
<Text variant="text-xs/normal" color="text-default">
{intl.format(t["7w9ymD"], {
helpArticle: getSecureFramesVerifiedDevicesHelpdeskArticle()
})}
</Text>
</View> : null;
};
useStyles = createStyles({
container: {
flexGrow: 1,
paddingHorizontal: Module712.space.PX_16,
gap: Module712.space.PX_16
},
header: {
marginTop: Module712.space.PX_24,
gap: Module712.space.PX_8
},
list: {
flexGrow: 1,
gap: Module712.space.PX_8
}
});
c10330_10 = {
USER: "USER"
};
export default function SettingsSecureFramesScreen() {
const styles = useStyles();
return <View style={styles.container}>
<View style={styles.header}>
<Text variant="heading-md/semibold" color="mobile-text-heading-primary">
{intl.string(t["9Q/PQv"])}
</Text>
<Text variant="text-sm/normal" color="text-default">
{intl.format(t["8IwQfG"], {
helpArticle: getSecureFramesHelpdeskArticle()
})}
</Text>
</View>
<SettingsSecureFramesFooter />
</View>;
};
@@ -0,0 +1,131 @@
// Metro module 14651 (f14652).
import { useCallback, useMemo, useLayoutEffect, useEffect } from "react";
import { View } from "react-native";
import UserStore from "../../../../stores/UserStore";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import { deletePersistentVerification, getSecureFramesUserVerifiedTimestamp, deleteUserPersistentVerifications } from "../../../rtc/SecureFramesUtils";
import { TableRow } from "../../../../design/components/TableRow/native/TableRow.native";
import { intl, t } from "../../../../intl/index.native";
import { PressableHighlight } from "../../../../design/void/Pressables/native/Pressables";
import { XSmallIcon } from "../../../../design/components/Icon/native/redesign/generated/XSmallIcon";
import { Text } from "../../../../design/components/Text/native/Text";
import { useSettingNavigationRoute } from "../../core/native/useSettingNavigationRoute";
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
import { useStateFromStores } from "../../../../_bundle/Module589";
import UserUtils from "../../../../utils/UserUtils";
import { GenericHeaderTitle } from "../../../main_tabs_v2/native/shared_components/HeaderShared";
import { useSecureFramesUserVerifiedKeys } from "../../../rtc/hooks/useSecureFramesUserVerifiedKeys";
import { FlashList } from "../../../../_bundle/noop_6676";
let useStyles, c10334_8, SectionListItem, renderItem, getItemType, keyExtractor, ClearVerificationsListFooter;
const VerificationListItem = function VerificationListItem(props) {
const { index, userId, verification, start, end } = props;
const callback = useCallback(() => {
deletePersistentVerification(userId, verification.verifiedKey);
}, [userId, verification.verifiedKey]);
const memo = useMemo(() => getSecureFramesUserVerifiedTimestamp(verification.timestamp), [verification.timestamp]);
return <TableRow label={intl.formatToPlainString(t.N4qBBO, {
index
})} subLabel={memo} start={start} end={end} trailing={<PressableHighlight onPress={callback}>
<XSmallIcon />
</PressableHighlight>} />;
};
SectionListItem = function SectionListItem(props) {
const title = props.title;
return <Text style={useStyles().section} variant="text-sm/semibold" color="text-default">{title}</Text>;
};
renderItem = function renderItem({ item }) {
const type = item.type;
if (c10334_8.VERIFICATION === type) {
return <VerificationListItem {...item} />;
}
if (c10334_8.SECTION === type) {
return <SectionListItem {...item} />;
}
};
getItemType = function getItemType(a0) {
return a0.type;
};
keyExtractor = function keyExtractor(a0) {
const type = a0.type;
if (c10334_8.VERIFICATION === type) {
return a0.verification.verifiedKey;
}
if (c10334_8.SECTION === type) {
return a0.title;
}
};
ClearVerificationsListFooter = function ClearVerificationsListFooter(props) {
const userId2 = props.userId;
const callback = useCallback(() => {
deleteUserPersistentVerifications(userId2);
}, [userId2]);
return <TableRow label={<Text variant="text-md/semibold" color="text-feedback-critical">
{intl.string(t["2xL5lu"])}
</Text>} subLabel={<Text variant="text-xs/medium" color="text-subtle">
{intl.string(t.kgAfXN)}
</Text>} onPress={callback} start end />;
};
useStyles = createStyles({
list: {
flexGrow: 1
},
listContent: {
paddingVertical: 32,
paddingHorizontal: 16
},
listFooter: {
marginTop: 32
},
section: {
marginBottom: 8
}
});
c10334_8 = {
VERIFICATION: "VERIFICATION",
SECTION: "SECTION"
};
export default function SettingsSecureFramesVerificationsScreen() {
let secureFramesUserVerifiedKeys;
const styles = useStyles();
const userId3 = useSettingNavigationRoute().params.userId;
const navigation = useNavigation();
const formattedName = UserUtils.getFormattedName(useStateFromStores([UserStore], () => UserStore.getUser(userId3)), false);
useLayoutEffect(() => {
navigation.setOptions({
title: `${intl.string(t["5b3FNI"])} (${formattedName})`,
headerTitle: () => <GenericHeaderTitle title={intl.string(t["5b3FNI"])} subtitle={formattedName} />
});
});
secureFramesUserVerifiedKeys = useSecureFramesUserVerifiedKeys(userId3);
const memo = useMemo(() => {
const r1 = [];
let c27785_0 = r1;
r1.push({
type: c10334_8.SECTION,
title: intl.formatToPlainString(t["/MBjYF"], {
count: secureFramesUserVerifiedKeys.length
})
});
secureFramesUserVerifiedKeys.forEach((secureFramesUserVerifiedKey, a1) => {
c27785_0.push({
type: c10334_8.VERIFICATION,
verification: secureFramesUserVerifiedKey,
index: a1 + 1,
userId: userId3,
start: a1 === 0,
end: a1 === secureFramesUserVerifiedKeys.length - 1
});
});
return r1;
}, [userId3, secureFramesUserVerifiedKeys]);
useEffect(() => {
if (secureFramesUserVerifiedKeys.length === 0) {
navigation.pop();
}
}, [navigation, secureFramesUserVerifiedKeys]);
return <View style={styles.list}>
<FlashList keyExtractor={keyExtractor} getItemType={getItemType} renderItem={renderItem} data={memo} contentContainerStyle={styles.listContent} ListFooterComponent={<View style={styles.listFooter}>
<ClearVerificationsListFooter userId={userId3} />
</View>} />
</View>;
};
@@ -0,0 +1,20 @@
// Metro module 16663 (f16664).
import { NativeModules } from "react-native";
import UserSettingsProtoStore from "../../UserSettingsProtoStore";
import AutomaticLifecycleManager from "../../../../lib/AutomaticLifecycleManager";
import { isIOS } from "../../../../utils/PlatformUtils";
class UserSettingsNativeBridgeManager extends AutomaticLifecycleManager {
saveExplicitContentSettingsToDisk = isIOS() ? () => {
const r7 = UserSettingsProtoStore.settings == null ? void 0 : UserSettingsProtoStore.settings.textAndImages?.explicitContentSettings;
const NSUserDefaultsBridge = NativeModules.NSUserDefaultsBridge;
if (NSUserDefaultsBridge != null) {
NSUserDefaultsBridge.setExplicitContentSettingsJSONString(JSON.stringify(r7));
}
} : () => {};
actions = {
POST_CONNECTION_OPEN: this.saveExplicitContentSettingsToDisk,
USER_SETTINGS_PROTO_UPDATE: this.saveExplicitContentSettingsToDisk
};
}
const userSettingsNativeBridgeManager = new UserSettingsNativeBridgeManager();
export default userSettingsNativeBridgeManager;
@@ -0,0 +1,10 @@
// Metro module 13887 (f13888).
import AlertActionCreators from "../../../../actions/AlertActionCreators";
import { intl, t } from "../../../../intl/index.native";
export function showDataPrivacyRateLimitAlert(a0) {
AlertActionCreators.show({
title: intl.string(t["43LbVL"]),
body: a0,
confirmText: intl.string(t.BddRzS)
});
}
@@ -0,0 +1,20 @@
// Metro module 14663 (f14664).
import GuildStore from "../../../stores/GuildStore";
import { GUILD_SELECT_ALL_SERVERS_OPTION_ID, useUserSafetySettingsSelectedGuildStore } from "./UserSettingsSafetySelectedGuildStore";
import { GuildFeatures } from "../../../Constants";
import { useStateFromStores } from "../../../_bundle/Module589";
export function useUserSafetySettingsSelectedGuildId() {
return useUserSafetySettingsSelectedGuildStore().selectedGuildId;
}
export function useAllServersOptionSelected() {
return useUserSafetySettingsSelectedGuildStore().selectedGuildId === GUILD_SELECT_ALL_SERVERS_OPTION_ID;
}
export function useIsSelectedGuildAHub() {
const selectedGuildId = useUserSafetySettingsSelectedGuildStore().selectedGuildId;
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(selectedGuildId));
let r17 = stateFromStores == null ? void 0 : stateFromStores.features.has(GuildFeatures.HUB);
if (r17 == null) {
r17 = false;
}
return r17;
}