decord/beta/source/modules/rtc/native/SecureFramesUserVerificationModal.tsx

269 lines
12 KiB
TypeScript
Raw Normal View History

// Module ID: 9168
// Function ID: 9169
// Name: SecureFramesUserVerificationModal
// Dependencies: [32, 19, 17, 2045, 1372, 9165, 1074, 1181, 21, 4836, 576, 504, 4988, 9169, 9171, 9144, 9172, 9163, 5039, 4528, 4792, 1115, 9173, 9174, 7809, 6583, 7624, 9175, 1177, 6544, 5435, 5940, 4832, 5279, 9176, 9178, 5281, 2]
// Exports: default
// Module 9168 (SecureFramesUserVerificationModal)
import nativeDefault from "native" /* 576 */;
2026-10-01 14:13:23 +00:00
import intl8 from "intl" /* 1115 */;
import native from "native" /* 1177 */;
2026-10-01 14:13:23 +00:00
import FormConstants from "FormConstants" /* 1181 */;
import ToastActionCreatorsDefault from "ToastActionCreators" /* 4528 */;
import CircleCheckIcon from "CircleCheckIcon" /* 4792 */;
import ModalActionCreatorsDefault from "ModalActionCreators" /* 5039 */;
import showUserProfileActionSheetDefault from "showUserProfileActionSheet" /* 7624 */;
2026-10-01 14:13:23 +00:00
import showShareActionSheet from "showShareActionSheet" /* 7809 */;
import SecureFramesUtils from "SecureFramesUtils" /* 9163 */;
import SecureFramesTracking from "SecureFramesTracking" /* 9174 */;
2026-10-01 14:13:23 +00:00
import _slicedToArray from "_slicedToArray" /* 32 */;
import react from "react" /* 19 */;
import react_native from "react-native" /* 17 */;
import ChannelStore from "ChannelStore" /* 2045 */;
import UserStore from "UserStore" /* 1372 */;
2026-10-01 14:13:23 +00:00
import SecureFramesConstants from "SecureFramesConstants" /* 9165 */;
import Constants from "Constants" /* 1074 */;
import Fragment from "Fragment" /* 21 */;
import createStyles from "createStyles" /* 4836 */;
import size from "module_2" /* 2 */;
2026-10-01 14:13:23 +00:00
let c10;
let c9;
let closure_12;
let closure_14;
let closure_16;
let closure_17;
let hasOwnProperty;
let map1;
let metroRequire;
let obj2;
let unpackModuleId;
({ ActivityIndicator: hasOwnProperty, View: metroRequire } = react_native);
({ USER_VERIFICATION_CHUNK_SIZE: c9, USER_VERIFICATION_LENGTH: c10, USER_VERIFICATION_NUM_COLUMNS: unpackModuleId, USER_VERIFIED_TOAST_KEY: closure_12 } = SecureFramesConstants);
({ AnalyticsLocations: map1, AnalyticsSections: closure_14 } = Constants);
2026-10-01 14:13:23 +00:00
const ANDROID_FOREGROUND_RIPPLE = FormConstants.ANDROID_FOREGROUND_RIPPLE;
({ jsx: closure_16, jsxs: closure_17 } = Fragment);
let obj = { container: obj2, footer: { flex: 1, gap: 16, justifyContent: "flex-end" }, footerText: { textAlign: "center" }, header: { height: 56, flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, subtitle: { textAlign: "center" }, code: { marginTop: 24 }, helpMessage: { marginBottom: 16 } };
obj2 = { flex: 1, padding: 16, flexDirection: "column", backgroundColor: nativeDefault.colors.BACKGROUND_BASE_LOW };
let closure_18 = createStyles.createStyles(obj);
let result = size.fileFinishedImporting("modules/rtc/native/SecureFramesUserVerificationModal.tsx");
export default function SecureFramesUserVerificationModal(userId) {
2026-10-01 14:13:23 +00:00
let Text;
let intl;
let intl2;
let intl3;
let intl4;
let intl5;
let intl6;
let items10;
let items11;
let items12;
let items13;
let items9;
let obj15;
let stringResult;
let tmp18;
let tmp19;
let tmp24Result2;
const f88258 = () => {
let items1;
const intl = intl8.intl;
const string = intl.string;
const t = intl8.t;
if (isUserSecureFramesVerified) {
const items = [string(t.UNUuem), native.BadgeColors.INFO];
items1 = items;
} else {
items1 = [string(t.y2b7CA), native.BadgeColors.DANGER];
}
return items1;
};
userId = userId.userId;
const channelId = userId.channelId;
let name;
let isCurrentUserKeyPersistent;
let isOtherUserKeyPersistent;
let enabled;
let analyticsLocations;
const tmp = closure_18();
let obj = userId(name[11]);
2026-10-01 14:13:23 +00:00
let items = [isOtherUserKeyPersistent];
const stateFromStores = obj.useStateFromStores(items, () => UserStore.getUser(userId));
let obj2 = userId(name[11]);
let items1 = [isCurrentUserKeyPersistent];
2026-10-01 14:13:23 +00:00
const stateFromStores1 = obj2.useStateFromStores(items1, () => {
const channel = ChannelStore.getChannel(channelId);
let guildId;
if (channel != null) {
guildId = channel.getGuildId();
}
return guildId;
});
let obj3 = channelId(name[12]);
2026-10-01 14:13:23 +00:00
name = obj3.useName(stateFromStores1, null, stateFromStores);
let obj4 = userId(name[13]);
const secureFramesPairwiseFingerprint = obj4.useSecureFramesPairwiseFingerprint({ userId });
const fingerprint = secureFramesPairwiseFingerprint.fingerprint;
const fingerprintUserKey = secureFramesPairwiseFingerprint.fingerprintUserKey;
2026-10-01 14:13:23 +00:00
let obj5 = userId(name[14]);
const obj6 = { fingerprintBase64: fingerprint, chunkSize: enabled, desiredLength: analyticsLocations };
2026-10-01 14:13:23 +00:00
const readableSecureFramesFingerprint = obj5.useReadableSecureFramesFingerprint(obj6);
const obj7 = userId(name[15]);
2026-10-01 14:13:23 +00:00
const isUserSecureFramesVerified = obj7.useIsUserSecureFramesVerified({ userId, channelId, userKey: fingerprintUserKey });
const obj8 = userId(name[16]);
const isPersistentSecureFramesFingerprint = obj8.useIsPersistentSecureFramesFingerprint({ userId, userKey: fingerprintUserKey });
isCurrentUserKeyPersistent = isPersistentSecureFramesFingerprint.isCurrentUserKeyPersistent;
isOtherUserKeyPersistent = isPersistentSecureFramesFingerprint.isOtherUserKeyPersistent;
const items2 = [channelId, fingerprintUserKey, isOtherUserKeyPersistent, name, userId];
2026-10-01 14:13:23 +00:00
const loading = isPersistentSecureFramesFingerprint.loading;
let callback = fingerprintUserKey.useCallback(() => {
2026-10-01 14:13:23 +00:00
let intl;
let obj3;
if (null != fingerprintUserKey) {
const obj = SecureFramesUtils;
2026-10-01 14:13:23 +00:00
obj.addVerification(userId, fingerprintUserKey, isOtherUserKeyPersistent, channelId, map1.E2EE_USER_VERIFY_MODAL);
const arr = ModalActionCreatorsDefault;
arr.pop();
const obj2 = { key, iconColor: "text-feedback-positive", IconComponent: CircleCheckIcon.CircleCheckIcon, content: intl.formatToPlainString(intl8.t.Gwu134, obj3) };
const open = ToastActionCreatorsDefault.open;
ToastActionCreatorsDefault;
intl = intl8.intl;
obj3 = { username: name };
open(obj2);
}
}, items2);
const items3 = [fingerprintUserKey, isOtherUserKeyPersistent, userId];
const callback1 = fingerprintUserKey.useCallback(() => {
if (null != fingerprintUserKey) {
2026-10-01 14:13:23 +00:00
const obj = SecureFramesUtils;
obj.deleteVerification(userId, tmp, isOtherUserKeyPersistent);
const arr = ModalActionCreatorsDefault;
arr.pop();
}
}, items3);
2026-10-01 14:13:23 +00:00
const obj9 = userId(name[22]);
enabled = obj9.useSecureFramesDeeplinkExperiment({ location: "SecureFramesUserVerificationModal" }).enabled;
const items4 = [channelId, readableSecureFramesFingerprint, fingerprint, enabled, userId];
const callback2 = fingerprintUserKey.useCallback(() => {
if (null != fingerprint) {
2026-10-01 14:13:23 +00:00
const obj4 = readableSecureFramesFingerprint;
if (null != readableSecureFramesFingerprint) {
2026-10-01 14:13:23 +00:00
let userVerificationDeeplink;
const arr = ModalActionCreatorsDefault;
arr.pop();
const obj = { userId, channelId };
2026-10-01 14:13:23 +00:00
const obj5 = SecureFramesTracking;
const result = obj5.trackE2EEUserVerificationShareClicked(obj);
const tmp12 = enabled;
const tmp9 = userId;
if (tmp12) {
const tmp8Result = SecureFramesUtils;
userVerificationDeeplink = tmp8Result.getUserVerificationDeeplink(tmp9, tmp);
} else {
2026-10-01 14:13:23 +00:00
userVerificationDeeplink = obj4.join(" ");
}
2026-10-01 14:13:23 +00:00
const obj2 = { message: userVerificationDeeplink };
const tmp8Result2 = showShareActionSheet;
tmp8Result2.showShareActionSheet(obj2, constants.SECURE_FRAMES_VOICE_BOTTOM_SHEET);
}
}
}, items4);
analyticsLocations = channelId(name[25])().analyticsLocations;
const items5 = [analyticsLocations, channelId, userId];
const callback3 = fingerprintUserKey.useCallback(() => {
2026-10-01 14:13:23 +00:00
const arr = ModalActionCreatorsDefault;
arr.pop();
const obj = { userId, channelId, isVoiceContext: true, sourceAnalyticsLocations: analyticsLocations };
showUserProfileActionSheetDefault(obj);
}, items5);
const obj10 = userId(name[27]);
const obj11 = { channelId, userId, nickname: name, onAlertOpen: channelId(name[18]).pop };
2026-10-01 14:13:23 +00:00
const alertIfSecureFramesKeyInconsistent = obj10.useAlertIfSecureFramesKeyInconsistent(obj11);
const items6 = [isUserSecureFramesVerified];
const items7 = [isCurrentUserKeyPersistent, isOtherUserKeyPersistent, name];
2026-10-01 14:13:23 +00:00
[tmp18, tmp19] = fingerprint(fingerprintUserKey.useMemo(f88258, items6), 2);
const items8 = [channelId, userId];
2026-10-01 14:13:23 +00:00
fingerprint(fingerprintUserKey.useMemo(f88258, items6), 2);
const memo = fingerprintUserKey.useMemo(() => {
const obj = SecureFramesUtils;
const obj2 = { isCurrentUserKeyPersistent, isOtherUserKeyPersistent, otherUserNickname: name };
return obj.getUserVerificationFooterText(obj2);
}, items7);
const effect = fingerprintUserKey.useEffect(() => {
2026-10-01 14:13:23 +00:00
const obj = SecureFramesTracking;
const obj2 = { userId, channelId };
const result = obj.trackE2EEUserVerificationViewed(obj2);
}, items8);
2026-10-01 14:13:23 +00:00
const rect = { top: true, bottom: true, style: tmp.container, children: items10 };
const obj12 = { style: tmp.header, children: items9 };
const SafeAreaPaddingView = userId(name[29]).SafeAreaPaddingView;
const obj13 = { accessibilityRole: "button", accessibilityLabel: intl.string(userId(name[21]).t.cpT0Cq), androidRippleConfig: ANDROID_FOREGROUND_RIPPLE, hitSlop: 8, onPress: callback3, children: closure_16(userId(name[31]).ArrowLargeLeftIcon, { size: "md" }) };
const PressableOpacity = userId(name[30]).PressableOpacity;
intl = userId(name[21]).intl;
items9 = [closure_16(PressableOpacity, obj13), ];
let tmp24Result = null != fingerprint && null != readableSecureFramesFingerprint;
2026-10-01 14:13:23 +00:00
const tmp25 = ANDROID_FOREGROUND_RIPPLE;
if (tmp24Result) {
2026-10-01 14:13:23 +00:00
const obj14 = { accessibilityRole: "button", accessibilityLabel: intl2.string(userId(name[21]).t.RDE0Sc), androidRippleConfig: tmp25, hitSlop: 8, onPress: callback2, children: closure_16(Text, obj15) };
const PressableOpacity2 = tmp2(tmp3[30]).PressableOpacity;
intl2 = tmp2(tmp3[21]).intl;
obj15 = { variant: "text-md/semibold", color: "text-brand", children: intl3.string(userId(name[21]).t.RDE0Sc) };
Text = tmp2(tmp3[32]).Text;
intl3 = tmp2(tmp3[21]).intl;
tmp24Result = tmp24(PressableOpacity2, obj14);
}
items9[1] = tmp24Result;
2026-10-01 14:13:23 +00:00
items10 = [closure_17(isUserSecureFramesVerified, obj12), , , ];
const obj16 = { spacing: 8, justify: "center", align: "center", direction: "vertical", children: items11 };
const Stack = tmp2(tmp3[33]).Stack;
const obj17 = { variant: "heading-xl/bold", color: "mobile-text-heading-primary", children: intl4.string(userId(name[21]).t["/WPGnF"]) };
const Text2 = tmp2(tmp3[32]).Text;
intl4 = tmp2(tmp3[21]).intl;
items11 = [closure_16(Text2, obj17), ];
const obj18 = { style: tmp.subtitle, variant: "text-md/medium", color: "text-default", children: intl5.format(userId(name[21]).t.oc2kce, { username: name }) };
const Text3 = tmp2(tmp3[32]).Text;
intl5 = tmp2(tmp3[21]).intl;
items11[1] = closure_16(Text3, obj18);
items10[1] = closure_17(Stack, obj16);
const obj19 = { style: tmp.code, children: items12 };
items12 = [, ];
const obj20 = { style: tmp.helpMessage, userId, userKey: fingerprintUserKey };
2026-10-01 14:13:23 +00:00
items12[0] = closure_16(channelId(name[34]), obj20);
const obj21 = { title: intl6.string(userId(name[21]).t["/WPGnF"]), chunks: readableSecureFramesFingerprint, columns, trailing: tmp24Result2 };
const tmp6Result = channelId(name[35]);
intl6 = tmp2(tmp3[21]).intl;
if (null == readableSecureFramesFingerprint) {
2026-10-01 14:13:23 +00:00
tmp24Result2 = tmp24(readableSecureFramesFingerprint, {});
} else {
const obj22 = { color: tmp19, text: tmp18 };
tmp24Result2 = tmp24(tmp2(tmp3[28]).TextBadge, obj22);
}
2026-10-01 14:13:23 +00:00
items12[1] = closure_16(tmp6Result, obj21);
items10[2] = closure_17(isUserSecureFramesVerified, obj19);
2026-10-01 14:13:23 +00:00
const obj23 = { style: tmp.footer, children: items13 };
items13 = [, ];
const obj24 = { style: tmp.footerText, variant: "text-xs/normal", color: "text-default", children: memo };
items13[0] = closure_16(userId(name[32]).Text, obj24);
let tmp30 = null == readableSecureFramesFingerprint;
const Button = tmp2(tmp3[36]).Button;
if (!tmp30) {
tmp30 = loading;
}
2026-10-01 14:13:23 +00:00
const obj25 = { disabled: tmp30, variant: "primary", onPress: callback, text: stringResult };
if (isUserSecureFramesVerified) {
callback = callback1;
}
const intl7 = tmp2(tmp3[21]).intl;
let string = intl7.string;
let t = tmp2(tmp3[21]).t;
if (isUserSecureFramesVerified) {
2026-10-01 14:13:23 +00:00
stringResult = string(t["Osb+/n"]);
} else {
stringResult = string(t["0tvNAn"]);
}
2026-10-01 14:13:23 +00:00
items13[1] = closure_16(Button, obj25);
items10[3] = closure_17(isUserSecureFramesVerified, obj23);
2026-10-01 14:13:23 +00:00
return closure_17(SafeAreaPaddingView, rect);
};