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,93 @@
// Metro module 14866 (f14867).
import { Pressable, View } from "react-native";
import UserRecord from "../../../records/UserRecord";
import StreamerModeStore from "../../../stores/StreamerModeStore";
import UserStore from "../../../stores/UserStore";
import { MultiAccountTokenStatus } from "../MultiAccountStore";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import { useStateFromStores } from "../../../_bundle/Module589";
import { CircleCheckIcon } from "../../../design/components/Icon/native/redesign/generated/CircleCheckIcon";
import Module712 from "../../../_bundle/Module712";
import { CircleInformationIcon } from "../../../design/components/Icon/native/redesign/generated/CircleInformationIcon";
import { Text } from "../../../design/components/Text/native/Text";
import { intl, t } from "../../../intl/index.native";
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import { useRadioA11yNative } from "../../../_bundle/Module3907";
import { Avatar } from "../../../design/void/native";
import UserUtils from "../../../utils/UserUtils";
let useStyles;
const AccountStatusIcon = function AccountStatusIcon(props) {
const user = props.user;
return user.id === useStateFromStores([UserStore], () => UserStore.getCurrentUser())?.id ? <CircleCheckIcon color={Module712.colors.TEXT_BRAND} /> : user.tokenStatus === MultiAccountTokenStatus.INVALID ? <CircleInformationIcon color={Module712.colors.ICON_FEEDBACK_CRITICAL} /> : null;
};
useStyles = createStyles({
accountListTag: {
marginLeft: 12,
flex: 1
},
tagContainer: {
display: "flex",
flexDirection: "row"
},
accountSwitcherListItem: {
display: "flex",
flexDirection: "row",
justifyContent: "flex-start",
alignItems: "center",
paddingVertical: 8,
paddingHorizontal: 16
},
username: {
flexShrink: 1
},
accountInfo: {
flex: 1,
minWidth: "30%",
display: "flex",
flexDirection: "row",
alignItems: "center"
}
});
export default function AccountSwitcherListItem(props) {
const { user, onPressUser, showActiveAccountLabel = false, sortHandlers, delayLongPress, leading } = props;
let trailing = props.trailing;
const styles = useStyles();
const stateFromStores = useStateFromStores([StreamerModeStore], () => StreamerModeStore.hidePersonalInformation);
const selected = user.id === useStateFromStores([UserStore], () => UserStore.getCurrentUser())?.id;
const r15 = Object.create(UserRecord.prototype);
const userRecord = new UserRecord(user);
const r16 = selected && showActiveAccountLabel ? <Text variant="text-sm/semibold" color="text-brand">
{intl.string(t.seV8yt)}
</Text> : user.tokenStatus === MultiAccountTokenStatus.INVALID ? <Text variant="text-sm/semibold" color="text-feedback-critical">
{intl.string(t.tYX2ps)}
</Text> : null;
const Component = onPressUser == null ? Pressable : PressableOpacity;
const radioA11yNative = useRadioA11yNative({
selected
});
const accessibilityHint = selected ? void 0 : intl.string(t.wY4y0R);
const user2 = userRecord;
const children = [leading, <View style={styles.accountInfo}>
<Avatar user={user2} guildId={void 0} />
<View style={styles.accountListTag}>
<View style={styles.tagContainer}>
<Text variant="text-md/semibold" color="text-default" style={styles.username} lineClamp={1}>
{UserUtils.getUserTag(user2, {
mode: "username",
identifiable: stateFromStores ? "never" : "always"
})}
</Text>
{(stateFromStores ? !stateFromStores : !user2.hasUniqueUsername()) && <Text variant="text-md/normal" color="text-muted">
{`#${user2.discriminator}`}
</Text>}
</View>
{r16}
</View>
</View>, ,];
if (trailing === void 0) {
trailing = <AccountStatusIcon user={user} />;
}
children[2] = trailing;
return <Component key={user.id} accessibilityRole={radioA11yNative.accessibilityRole} accessibilityState={radioA11yNative.accessibilityState} accessibilityHint={accessibilityHint} style={styles.accountSwitcherListItem} delayLongPress={delayLongPress} onPress={onPressUser} {...sortHandlers}>{children}</Component>;
};
export { AccountStatusIcon };
@@ -0,0 +1,24 @@
// Metro module 16252 (f16253).
import { View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import { intl, t } from "../../../intl/index.native";
import { ActivityIndicator } from "../../../design/components/ActivityIndicator/native/ActivityIndicator.native";
import { ModalAnimation } from "../../../ConstantsIOS";
let useStyles;
const AccountSwitchingSpinnerModal = function AccountSwitchingSpinnerModal() {
return <View style={useStyles().switchingSpinnerContainer} accessible accessibilityLabel={intl.string(t.n8qMH0)}>
<ActivityIndicator />
</View>;
};
useStyles = createStyles({
switchingSpinnerContainer: {
flex: 1,
alignItems: "center",
justifyContent: "center"
}
});
AccountSwitchingSpinnerModal.modalConfig = {
animation: ModalAnimation.FADE,
closable: false
};
export default AccountSwitchingSpinnerModal;
@@ -0,0 +1,133 @@
// Metro module 14864 (f14865).
import { View } from "react-native";
import { MultiAccountTokenStatus } from "../MultiAccountStore";
import { MAX_ACCOUNTS, MultiAccountSwitchLocation } from "../Constants";
import { AnalyticEvents, AuthStates } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { useNavigation } from "../../../design/components/Navigator/native/useNavigation.native";
import { useMultiAccountUsers } from "../useMultiAccount";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import { removeAccount, switchAccount } from "../MultiAccountActionCreators";
import AlertActionCreators from "../../../actions/native/AlertActionCreators";
import { intl, t } from "../../../intl/index.native";
import { ButtonColors, Icon } from "../../../design/void/native";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import { showSimpleActionSheet } from "../../action_sheet/native/showSimpleActionSheet";
import AuthFormView from "../../auth/native/components/AuthFormView";
import { Text } from "../../../design/components/Text/native/Text";
import Module13002 from "../../../_bundle/Module13002";
import AccountSwitcherListItem from "./AccountSwitcherListItem";
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import Module8334 from "../../../_bundle/Module8334";
import { FormRow } from "../../../design/void/Form/native/index";
import Module14867 from "../../../_bundle/Module14867";
const useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
borderRadius: Module712.radii.sm,
paddingTop: Module712.space.PX_16,
margin: Module712.space.PX_16
},
mainCard: {
marginVertical: Module712.space.PX_16,
borderRadius: Module712.radii.sm,
flexDirection: "column",
alignItems: "stretch",
alignSelf: "stretch",
display: "flex"
},
addAccountLabel: {
color: Module712.colors.TEXT_LINK
}
});
export default function ChooseAccount() {
let navigation, multiAccountUsers;
let _handlePressRemove2 = function _handlePressRemove() {
const r9 = async (c30795_0) => {
let c30795_2;
c30795_2 = void 0;
let c31743_0 = c30795_0;
if (await AlertActionCreators.confirm({
title: intl.string(t.n0Fbg6),
body: intl.formatToPlainString(t.phEQmS, {
username: c30795_0.discriminator === "0" ? `${c30795_0.username}` : `${c30795_0.username}#${c30795_0.discriminator}`
}),
confirmText: intl.string(t.N86XcP),
confirmColor: ButtonColors.RED,
cancelText: intl.string(t["ETE/oC"]),
isDismissable: true
})) {
ActionSheetActionCreators.hideActionSheet();
removeAccount(c31743_0.id);
}
};
_handlePressRemove2 = r9;
return r9.apply(this, arguments);
};
const styles = useStyles();
navigation = useNavigation();
multiAccountUsers = useMultiAccountUsers().multiAccountUsers;
return <AuthFormView headerText={intl.string(t.bVbB63)} subHeader={<Text variant="text-sm/medium" color="text-default">
{intl.string(t["0M5fN7"])}
</Text>} backgroundImageSource={Module13002} backgroundImageCover contentStyle={styles.container}>
<View style={styles.mainCard}>
{multiAccountUsers.map((multiAccountUser) => {
return <AccountSwitcherListItem key={multiAccountUser.id} user={multiAccountUser} onPressUser={() => {
if (multiAccountUser.tokenStatus === MultiAccountTokenStatus.INVALID) {
navigation.push(AuthStates.LOGIN);
AnalyticsUtils.track(AnalyticEvents.LOGIN_VIEWED, {
source: "choose_account_user_invalid"
});
} else {
switchAccount(multiAccountUser.id, void 0, MultiAccountSwitchLocation.CHOOSE_ACCOUNT);
}
}} trailing={<PressableOpacity accessibilityRole="button" onPress={() => {
let c30796_0 = multiAccountUser;
ActionSheetActionCreators.hideActionSheet();
showSimpleActionSheet({
key: "RemoveAccount",
options: [{
label: intl.string(t["DSN+hw"]),
onPress: () => {
if (c30796_0.tokenStatus === MultiAccountTokenStatus.INVALID) {
navigation.push(AuthStates.LOGIN);
AnalyticsUtils.track(AnalyticEvents.LOGIN_VIEWED, {
source: "choose_account_user_invalid"
});
} else {
switchAccount(c30796_0.id, void 0, MultiAccountSwitchLocation.CHOOSE_ACCOUNT);
}
}
}, {
label: intl.string(t.lSLMaU),
onPress: () => (function handlePressRemove(a0) {
return _handlePressRemove2.apply(this, arguments);
})(c30796_0),
isDestructive: true
}],
hasIcons: false
});
}}>
<Icon size={Icon.Sizes.SMALL_20} source={Module8334} disableColor />
</PressableOpacity>} />;
})}
<FormRow leading={<FormRow.Icon themedColor={Module712.colors.TEXT_LINK} size={Icon.Sizes.SMALL_20} source={Module14867} />} label={intl.string(t.bPP34Q)} labelStyle={styles.addAccountLabel} onPress={function handlePressAddAccount() {
if (multiAccountUsers.length >= MAX_ACCOUNTS) {
AlertActionCreators.show({
title: intl.string(t.w7wfXi),
body: intl.formatToPlainString(t.WOyelG, {
maxNumAccounts: MAX_ACCOUNTS
}),
isDismissable: true
});
} else {
navigation.push(AuthStates.LOGIN);
AnalyticsUtils.track(AnalyticEvents.LOGIN_VIEWED, {
source: "choose_account_add_account"
});
}
}} />
</View>
</AuthFormView>;
};
@@ -0,0 +1,65 @@
// Metro module 15252 (f15253).
import { forwardRef, useRef, useCallback, useImperativeHandle } from "react";
import * as _ReanimatedRexport from "../../reanimated/ReanimatedRexport";
import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../reanimated/ReanimatedRexport";
import { withTiming } from "../../../design/animation/reanimated/timing/timing";
const __initData = {
code: "function FadeInOutTsx1(){const{opacity}=this.__closure;return{opacity:opacity.get()};}"
};
const __initData2 = {
code: "function FadeInOutTsx2(finished){const{runOnJS,handleTransitionFinished}=this.__closure;if(finished){runOnJS(handleTransitionFinished)();}}"
};
const r22 = forwardRef(function({ children, duration, style }, a1) {
let ref, callback;
ref = void 0;
callback = void 0;
const sharedValue = useSharedValue(0);
const h = () => ({
opacity: sharedValue.get()
});
h.__closure = {
opacity: sharedValue
};
h.__workletHash = 8749472415282;
h.__initData = __initData;
const animatedStyle = useAnimatedStyle(h);
ref = useRef(null);
callback = useCallback(() => {
const current = ref.current;
if (current != null) {
current.call(ref);
}
}, [ref]);
useImperativeHandle(a1, () => ({
componentDidAppear: () => {
sharedValue.set(withTiming(1, {
duration
}));
},
componentDidEnter: () => {
sharedValue.set(withTiming(1, {
duration
}));
},
componentWillLeave: (a0) => {
ref.current = a0;
const r6 = {
duration
};
const t = function t(a0) {
if (a0) {
_ReanimatedRexport.runOnJS(callback)();
}
};
t.__closure = {
runOnJS: _ReanimatedRexport.runOnJS,
handleTransitionFinished: callback
};
t.__workletHash = 7644958904451;
t.__initData = __initData2;
sharedValue.set(withTiming(0, r6, "respect-motion-settings", t));
}
}));
return <ReanimatedRexport.View style={[style, animatedStyle]}>{children}</ReanimatedRexport.View>;
});
export default r22;
@@ -0,0 +1,15 @@
// Metro module 15250 (f15251).
import { AuthStates } from "../../../Constants";
const LOGIN = AuthStates.LOGIN;
const r13 = {
MANAGE_ACCOUNTS: "MANAGE_ACCOUNTS",
LOGIN
};
r13[LOGIN] = "LOGIN";
const ACCOUNT_DISABLED_OR_DELETION_SCHEDULED = AuthStates.ACCOUNT_DISABLED_OR_DELETION_SCHEDULED;
r13.ACCOUNT_DISABLED_OR_DELETION_SCHEDULED = ACCOUNT_DISABLED_OR_DELETION_SCHEDULED;
r13[ACCOUNT_DISABLED_OR_DELETION_SCHEDULED] = "ACCOUNT_DISABLED_OR_DELETION_SCHEDULED";
const MFA = AuthStates.MFA;
r13.MFA = MFA;
r13[MFA] = "MFA";
export { r13 as ManageAccountsScreens };
@@ -0,0 +1,252 @@
// Metro module 15249 (f15250).
import { useEffect, memo, useState } from "react";
import { View } from "react-native";
import AuthenticationStore from "../../../stores/AuthenticationStore";
import StreamerModeStore from "../../../stores/StreamerModeStore";
import UserStore from "../../../stores/UserStore";
import { MultiAccountTokenStatus } from "../MultiAccountStore";
import { MANAGE_EDIT_TRANSITION_DURATION, MAX_ACCOUNTS, MultiAccountSwitchLocation } from "../Constants";
import { ManageAccountsScreens } from "./ManageAccountsConstants";
import { AnalyticEvents, AuthStates } from "../../../Constants";
import { createNativeStackNavigator } from "../../../_bundle/Module9109";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { useStateFromStores, useStateFromStoresObject } from "../../../_bundle/Module589";
import { ButtonColors, Spacer } from "../../../design/void/native";
import AlertActionCreators from "../../../actions/native/AlertActionCreators";
import { intl, t } from "../../../intl/index.native";
import { removeAccount, moveAccount, switchAccount } from "../MultiAccountActionCreators";
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import { CircleMinusIcon } from "../../../design/components/Icon/native/redesign/generated/CircleMinusIcon";
import { useMultiAccountUsers } from "../useMultiAccount";
import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../reanimated/ReanimatedRexport";
import * as _timing from "../../../design/animation/reanimated/timing/timing";
import usePrevious from "../../../hooks/usePrevious";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import { SafeAreaPaddingView } from "../../../components_native/common/SafeAreaView";
import SortableListView from "../../../components_native/common/SortableListView";
import AccountSwitcherListItem, { AccountStatusIcon } from "./AccountSwitcherListItem";
import { TransitionGroup } from "../../../_bundle/Module10391";
import FadeInOut from "./FadeInOut";
import { DragIcon } from "../../../design/components/Icon/native/redesign/generated/DragIcon";
import { FormRow } from "../../../design/void/Form/native/index";
import { CirclePlusIcon } from "../../../design/components/Icon/native/redesign/generated/CirclePlusIcon";
import { useAccessibilityNativeStackOptions } from "../../../design/components/Navigator/native/Navigator.native";
import { GenericHeaderTitle, getRenderModalCloseImage, getRenderHeaderTextButton } from "../../main_tabs_v2/native/shared_components/HeaderShared";
import getNavigationModalPresentation from "../../main_tabs_v2/native/utils/getNavigationModalPresentation";
import AccountDisabledOrDeletionScheduled from "../../auth/native/components/AccountDisabledOrDeletionScheduled";
import AuthenticationActionCreators from "../../../actions/AuthenticationActionCreators";
import Login from "../../auth/native/components/Login";
import MFA from "../../auth/native/components/MFA";
let nativeStackNavigator, useStyles, __initData, ManageAccounts;
const RemoveMultiAccountUserButton = function RemoveMultiAccountUserButton(props) {
let username;
const user = props.user;
username = void 0;
let _handlePressRemove2 = function _handlePressRemove() {
const r9 = async () => {
let c30856_0;
c30856_0 = void 0;
if (await AlertActionCreators.confirm({
title: intl.string(t.n0Fbg6),
body: intl.formatToPlainString(t.phEQmS, {
username
}),
confirmText: intl.string(t.N86XcP),
confirmColor: ButtonColors.RED,
cancelText: intl.string(t["ETE/oC"]),
isDismissable: true
})) {
removeAccount(user.id);
}
};
_handlePressRemove2 = r9;
return r9.apply(this, arguments);
};
let r16 = useStateFromStores([StreamerModeStore], () => StreamerModeStore.hidePersonalInformation);
if (useStateFromStores([UserStore], () => UserStore.getCurrentUser())?.id === user.id) {
return <Spacer size={21} />;
}
username = user.username;
if (!r16) {
r16 = user.discriminator === "0";
}
if (!r16) {
username = username + `#${user.discriminator}`;
}
return <PressableOpacity accessibilityRole="button" accessibilityLabel={intl.string(t.lSLMaU)} onPress={function handlePressRemove() {
return _handlePressRemove2.apply(this, arguments);
}}>
<CircleMinusIcon color={Module712.colors.ICON_FEEDBACK_CRITICAL} />
</PressableOpacity>;
};
ManageAccounts = function ManageAccounts(props) {
let sharedValue, animatedStyle, c21807_7;
const { isEditing, navigation } = props;
sharedValue = void 0;
animatedStyle = void 0;
c21807_7 = void 0;
const styles = useStyles();
const multiAccountUsers = useMultiAccountUsers().multiAccountUsers;
const currentUserId = useStateFromStoresObject([AuthenticationStore], () => ({
currentUserId: AuthenticationStore.getId()
})).currentUserId;
sharedValue = useSharedValue(0);
const l = () => ({
width: _timing.withTiming(sharedValue.get(), {
duration: MANAGE_EDIT_TRANSITION_DURATION
})
});
l.__closure = {
withTiming: _timing.withTiming,
leadingWidth: sharedValue,
MANAGE_EDIT_TRANSITION_DURATION
};
l.__workletHash = 3389178545077;
l.__initData = __initData;
animatedStyle = useAnimatedStyle(l);
c21807_7 = usePrevious(isEditing);
useEffect(() => {
if (c21807_7 != null && c21807_7 !== isEditing) {
sharedValue.set(isEditing ? 37 : 0);
}
});
return <SafeAreaPaddingView style={styles.container} bottom>
<SortableListView data={multiAccountUsers} onRowMoved={function handleUserMove(event) {
moveAccount(event.from, event.to);
}} disableSorting={!isEditing} wrapperStyles={styles.sortableListView} renderRow={(a0, a1) => {
let r51;
const props = {
user: a0,
onPressUser: isEditing ? null : () => {
if (!isEditing && a0.id !== currentUserId) {
if (a0.tokenStatus === MultiAccountTokenStatus.INVALID) {
navigation.push(AuthStates.LOGIN);
AnalyticsUtils.track(AnalyticEvents.LOGIN_VIEWED, {
source: "multi_account_invalid_user"
});
} else {
switchAccount(a0.id, void 0, MultiAccountSwitchLocation.MANAGE_ACCOUNTS_MODAL);
}
}
},
showActiveAccountLabel: true,
leading: <TransitionGroup component={ReanimatedRexport.View} transitionEnter transitionLeave style={animatedStyle}>
{isEditing ? <FadeInOut duration={MANAGE_EDIT_TRANSITION_DURATION}>
<RemoveMultiAccountUserButton user={a0} />
</FadeInOut> : isEditing}
</TransitionGroup>,
trailing: null,
delayLongPress: null
};
const props2 = {
duration: MANAGE_EDIT_TRANSITION_DURATION,
style: styles.trailingIcon,
children: null
};
if (isEditing) {
props2.children = <DragIcon />;
r51 = <FadeInOut key="drag" {...props2} />;
} else {
props2.children = <AccountStatusIcon user={a0} />;
r51 = <FadeInOut key="status" {...props2} />;
}
props.trailing = <TransitionGroup component={View} transitionEnter transitionLeave transitionAppear style={styles.trailingIconContainer}>{r51}</TransitionGroup>;
props.delayLongPress = isEditing ? 100 : void 0;
return <AccountSwitcherListItem key={a1} {...props} />;
}} keyboardShouldPersistTaps="handled" scrollEventThrottle={16} scrollEnabled footer={<TransitionGroup component={View} transitionEnter transitionLeave transitionAppear>
{isEditing ? !isEditing : <FadeInOut duration={MANAGE_EDIT_TRANSITION_DURATION}>
<FormRow leading={<CirclePlusIcon color={Module712.colors.TEXT_LINK} />} label={<FormRow.Label style={styles.addAccountLabel} text={intl.string(t.bPP34Q)} />} onPress={function handlePressAddAccount() {
if (multiAccountUsers.length >= MAX_ACCOUNTS) {
AlertActionCreators.show({
title: intl.string(t.w7wfXi),
body: intl.formatToPlainString(t.WOyelG, {
maxNumAccounts: MAX_ACCOUNTS
}),
isDismissable: true
});
} else {
navigation.push(AuthStates.LOGIN);
AnalyticsUtils.track(AnalyticEvents.LOGIN_VIEWED, {
source: "multi_account_add_account"
});
}
}} />
</FadeInOut>}
</TransitionGroup>} />
</SafeAreaPaddingView>;
};
nativeStackNavigator = createNativeStackNavigator();
useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
flex: 1,
paddingTop: 16
},
sortableListView: {
flex: 1,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW
},
addAccountLabel: {
color: Module712.colors.TEXT_LINK
},
trailingIconContainer: {
width: 24,
height: 24
},
trailingIcon: {
position: "absolute"
}
});
__initData = {
code: "function ManageAccountsModalTsx1(){const{withTiming,leadingWidth,MANAGE_EDIT_TRANSITION_DURATION}=this.__closure;return{width:withTiming(leadingWidth.get(),{duration:MANAGE_EDIT_TRANSITION_DURATION})};}"
};
const r78 = memo(function ManageAccountsModal(props) {
let initialRouteName = props.initialRouteName;
if (initialRouteName === void 0) {
initialRouteName = ManageAccountsScreens.MANAGE_ACCOUNTS;
}
const accessibilityNativeStackOptions = useAccessibilityNativeStackOptions();
const [state, setState] = useState(false);
return <nativeStackNavigator.Navigator initialRouteName={initialRouteName} screenOptions={({ navigation: navigation2 }) => ({
headerTitle: (a0) => {
const { children, ...rest } = a0;
return <GenericHeaderTitle title={a0.children} {...rest} />;
},
headerLeft: state ? void 0 : getRenderModalCloseImage(navigation2),
headerTitleAlign: "center",
...accessibilityNativeStackOptions,
...getNavigationModalPresentation()
})}>
<nativeStackNavigator.Screen name={ManageAccountsScreens.MANAGE_ACCOUNTS} options={() => ({
title: intl.string(t.WbFpq4),
headerRight: state ? getRenderHeaderTextButton(intl.string(t.i4jeWR), () => setState(false)) : getRenderHeaderTextButton(intl.string(t.bt75uw), () => setState(true))
})}>
{(a0) => <ManageAccounts isEditing={state} navigation={a0.navigation} />}
</nativeStackNavigator.Screen>
<nativeStackNavigator.Screen name={ManageAccountsScreens.ACCOUNT_DISABLED_OR_DELETION_SCHEDULED} options={() => ({
title: intl.string(t.WbFpq4)
})}>
{() => <AccountDisabledOrDeletionScheduled handleLogin={(a0, a1, a2) => {
AuthenticationActionCreators.login({
login: a0,
password: a1,
undelete: a2
});
}} onReset={() => {
AuthenticationActionCreators.loginReset(true);
}} />}
</nativeStackNavigator.Screen>
<nativeStackNavigator.Screen name={ManageAccountsScreens.LOGIN} options={() => ({
headerShown: false
})}>
{() => <Login isMultiAccount />}
</nativeStackNavigator.Screen>
<nativeStackNavigator.Screen name={ManageAccountsScreens.MFA} options={() => ({
headerShown: false
})}>
{() => <MFA isMultiAccount />}
</nativeStackNavigator.Screen>
</nativeStackNavigator.Navigator>;
});
export default r78;
@@ -0,0 +1,151 @@
// Metro module 16251 (f16252).
import { SWITCH_ACCOUNTS_MODAL_KEY } from "../Constants";
import { Routes } from "../../../Constants";
import Logger from "../../debug/Logger";
import Durations from "../../../utils/Durations";
import ModalActionCreators from "../../../actions/ModalActionCreators";
import MultiAccountManager from "../MultiAccountManager";
import { closeFastConnectSocket } from "../../gateway/native/fast_connect";
import { reportAccountSwitchTimeout } from "../MultiAccountActionCreators";
import { transitionTo } from "../../routing/router_utils";
import { MobileHomeDrawerExperiment } from "../../home_drawer/native/HomeDrawerExperiment";
import { setHomeDrawerState } from "../../main_tabs_v2/helpers/NavigationRouteUtils.native";
import ToastActionCreators from "../../toast/native/ToastActionCreators";
import { intl, t } from "../../../intl/index.native";
import Module16254 from "../../../_bundle/Module16254";
function $mk99088($env) {
return () => {
const r3 = $env.$parent;
const r2 = r3[1];
const r1 = r3[2];
const r7 = r2(r1[4]);
const r12 = (0, r3[0])(r1[6])(r1[5], r1.paths);
const r13 = r3[7];
r7.pushLazy(r12, {}, r13);
if ($env[0].cancelled) {
r2(r1[4]).popWithKey(r13);
}
};
}
function $mk99089($env) {
return () => {
const r2 = $env;
const r3 = r2[0];
r3.cancelled = false;
const r4 = $env.$parent;
const r6 = r4[0];
const r5 = r4[2];
const rootNavigationRef = r6(r5[7]).getRootNavigationRef();
if (rootNavigationRef != null && rootNavigationRef.isReady()) {
r3.push();
} else {
r6(r5[8]).ComponentDispatch.subscribeOnce(r4[4].NAVIGATOR_READY, $mk112706(r2));
}
};
}
function $mk99090($env) {
return () => {
$env[0].cancelled = true;
const r5 = $env.$parent;
(0, r5[1])(r5[2][4]).popWithKey(r5[7]);
};
}
function $mk112706($env) {
return () => {
const r2 = $env[0];
if (!r2.cancelled) {
r2.push();
}
};
}
let c11681_0, c11680_10, c11680_11;
let env11680;
let env11681;
const r7 = env11680 = {};
const c11680_6 = new Logger("MultiAccountManagerNative");
const c11680_7 = "switch-accounts-spinner-modal";
const c11680_8 = 15 * Durations.Millis.SECOND;
env11680[9] = null;
const r38 = {
__proto__: (function MultiAccountModalManagerImpl() {
let env22921;
const r5 = {
__proto__: new.target.prototype
};
const r2 = env22921 = {
$parent: env11680
};
env22921[0] = r5;
r5.cancelled = false;
r5.push = $mk99088(r2);
r5.enqueue = $mk99089(r2);
r5.pop = $mk99090(r2);
return r5;
}).prototype
};
const r39 = env11681 = {
$parent: r7
};
c11681_0 = r38;
r38.cancelled = false;
r38.push = $mk99088(r39);
r38.enqueue = $mk99089(r39);
r38.pop = $mk99090(r39);
c11680_10 = r38;
class MultiAccountManagerNative extends MultiAccountManager {
constructor() {
super(...arguments);
}
onSwitchStart() {
ModalActionCreators.popWithKey(SWITCH_ACCOUNTS_MODAL_KEY);
c11680_6.info("Closing fast-connect socket because of account switch logout");
closeFastConnectSocket();
c11680_10.enqueue();
if (env11680[9] !== null) {
clearTimeout(env11680[9]);
}
env11680[9] = setTimeout(() => {
c11680_10.pop();
reportAccountSwitchTimeout();
}, c11680_8);
}
onSwitchSuccess(c22922_0, a1) {
if (a1) {
transitionTo(Routes.ME, {
navigationReplace: true
});
if (MobileHomeDrawerExperiment.getConfig({
location: "multi-account"
}).enableHome) {
setHomeDrawerState(false);
}
}
setTimeout(() => {
ToastActionCreators.open({
key: "SWITCH_ACCOUNTS_TOAST_LOGIN_SUCCESS",
content: intl.formatToPlainString(t.wx7O3L, {
username: c22922_0.username
}),
icon: Module16254
});
}, 100);
}
onSwitchError() {
ToastActionCreators.open({
key: "SWITCH_ACCOUNTS_TOAST_LOGIN_ERROR",
content: intl.string(t.pqvKWA),
icon: Module16254
});
}
onSwitchComplete() {
ModalActionCreators.popWithKey(SWITCH_ACCOUNTS_MODAL_KEY);
c11680_10.pop();
if (env11680[9] !== null) {
clearTimeout(env11680[9]);
env11680[9] = null;
}
}
}
c11680_11 = MultiAccountManagerNative;
const r58 = new MultiAccountManagerNative();
export default r58;
@@ -0,0 +1,10 @@
// Metro module 15248 (f15249).
import { SWITCH_ACCOUNTS_MODAL_KEY } from "../Constants";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import ModalActionCreators from "../../../actions/ModalActionCreators";
export default function openManageAccountsModal(a0) {
ActionSheetActionCreators.hideActionSheet();
ModalActionCreators.pushLazy(import("./ManageAccountsModal"), {
initialRouteName: a0
}, SWITCH_ACCOUNTS_MODAL_KEY);
};