Files
2026-07-28 01:06:53 +03:00

943 lines
52 KiB
TypeScript

/* Metro module 12622; source: modules/parent_tools/native/FamilyCenterModalRequest.tsx; dependencies: [5, 31, 27, 1878, 5117, 33, 4501, 697, 1484, 632, 5118, 12623, 5187, 12624, 6258, 6259, 1305, 1423, 1244, 2224, 4573, 12625, 12626, 10120, 6261, 4578, 5080, 5473, 8171, 44, 11365, 8160, 5461, 6266, 1909, 5263, 5074, 4813, 12620, 5282, 12632, 10121, 2] */
import Module00005 from '../../../by-id/module-00005.js'; /* Metro dependency 5 */
import Module00044 from '../../../by-id/module-00044.js'; /* Metro dependency 44 */
import UserStore from '../../../stores/UserStore.tsx'; /* Metro dependency 1878 */
import FamilyCenterMessages from '../FamilyCenter.messages.js'; /* Metro dependency 2224 */
import ModalActionCreators from '../../../actions/ModalActionCreators.tsx'; /* Metro dependency 5080 */
import FamilyCenterActionCreators from '../FamilyCenterActionCreators.tsx'; /* Metro dependency 5118 */
import UsePrevious from '../../../hooks/usePrevious.tsx'; /* Metro dependency 6266 */
import UseIsInAdultAgeGroup from '../hooks/useIsInAdultAgeGroup.tsx'; /* Metro dependency 8171 */
import Module12625 from '../../../by-id/module-12625.js'; /* Metro dependency 12625 */
import FamilyCenterDataConfirmation from './FamilyCenterDataConfirmation.tsx'; /* Metro dependency 12626 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as UseStateFromStoresModule from '../../../external/discord_common/js/packages/flux/useStateFromStores.tsx'; /* Metro dependency 632 */
import * as IndexNativeModule from '../../../intl/index.native.tsx'; /* Metro dependency 1244 */
import * as NativeModule from '../../../design/void/native.tsx'; /* Metro dependency 1305 */
import * as UseNavigationNativeModule from '../../../design/components/Navigator/native/useNavigation.native.tsx'; /* Metro dependency 1484 */
import * as TextModule from '../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */
import * as ButtonNativeModule from '../../../design/components/Button/native/Button.native.tsx'; /* Metro dependency 4578 */
import * as AgeVerificationUtilsModule from '../../age_assurance/AgeVerificationUtils.tsx'; /* Metro dependency 4813 */
import * as NavigatorHeaderNativeModule from '../../../design/components/Navigator/native/NavigatorHeader.native.tsx'; /* Metro dependency 5282 */
import * as ActivityIndicatorNativeModule from '../../../design/components/ActivityIndicator/native/ActivityIndicator.native.tsx'; /* Metro dependency 5461 */
import * as NativeModule2 from '../../../design/assets/native.tsx'; /* Metro dependency 5473 */
import * as ModalScreenNativeModule from '../../../design/components/Modal/native/ModalScreen.native.tsx'; /* Metro dependency 6258 */
import * as ModalContentNativeModule from '../../../design/components/Modal/native/ModalContent.native.tsx'; /* Metro dependency 6259 */
import * as ButtonGroupNativeModule from '../../../design/components/ButtonGroup/native/ButtonGroup.native.tsx'; /* Metro dependency 6261 */
import * as ModalFooterNativeModule from '../../../design/components/Modal/native/ModalFooter.native.tsx'; /* Metro dependency 10120 */
import * as ModalNativeModule from '../../../design/components/Modal/native/Modal.native.tsx'; /* Metro dependency 10121 */
import * as FamilyCenterModalRequestRoutingModule from '../FamilyCenterModalRequestRouting.tsx'; /* Metro dependency 12623 */
import * as UseFamilyCenterActionsModule from '../hooks/useFamilyCenterActions.tsx'; /* Metro dependency 12624 */
import * as FamilyCenterConnectionPrereqExperimentModule from '../FamilyCenterConnectionPrereqExperiment.tsx'; /* Metro dependency 12632 */
function _fun96804(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#96804, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6, offset: 0x02167681, size: 1610 bytes, params: 8, frame: 29
const env0_0 = require;
const FamilyCenterModalRequestConfirm2 = FamilyCenterModalRequestConfirm;
const FamilyCenterModalRequestSuccess2 = FamilyCenterModalRequestSuccess;
const FamilyCenterModalRequestError2 = FamilyCenterModalRequestError;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactNativeModule;
const env0_5 = value.Image;
const env0_6 = value.View;
value = require(5117) /* metro dependency 5117: FamilyCenterConstants */;
const env0_8 = value.FAMILY_CENTER_AGE_VERIFICATION_RESUME_TIMEOUT;
const env0_9 = value.FAMILY_CENTER_LINK_REQUEST_ERROR_EXPERIENCES;
const env0_10 = value.FamilyCenterFailureCode;
const env0_11 = value.FamilyCenterIconType;
value = require(33) /* metro dependency 33 */;
const env0_12 = value.jsx;
const env0_13 = value.jsxs;
const env0_14 = value.Fragment;
value = require(4501) /* metro dependency 4501: createStyles */;
let createStyles = value.createStyles;
object = {};
const object2 = {};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.marginTop = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.marginBottom = PX_16;
object.headerText = object2;
object.art = {'width': 165, 'height': 119};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.connectionHeader = {alignItems: 'center', marginBottom: PX_16};
const object4 = {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center', 'alignSelf': 'center'};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object4.padding = PX_8;
let BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object4.backgroundColor = BACKGROUND_SURFACE_HIGH;
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
let PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object4.marginBottom = PX_24;
object.headerIcons = object4;
const PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object.ellipseGroup = {flexDirection: 'row', marginHorizontal: PX_12};
const object6 = {'width': 4, 'height': 4, 'marginHorizontal': 2};
const ICON_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.ICON_MUTED;
object6.backgroundColor = ICON_MUTED;
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.ellipse = object6;
object.title = {textAlign: 'center'};
const PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object.teenName = {marginTop: PX_4, textAlign: 'center'};
const object9 = {};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object9.marginTop = PX_8;
object9.textAlign = 'center';
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object9.paddingHorizontal = PX_16;
object.consent = object9;
const env0_15 = Reflect.apply(createStyles, value, [object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createStyles = value.createStyles;
object = {};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.content = {'flex': 1, 'flexDirection': 'column', 'alignItems': 'center', 'justifyContent': 'center',
paddingHorizontal: PX_16};
object.textWrapper = {alignItems: 'center'};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.header = {marginBottom: PX_8};
object.description = {textAlign: 'center'};
PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object.illustration = {'position': 'absolute', 'bottom': '100%', 'left': 0, 'right': 0, 'alignItems': 'center',
paddingBottom: PX_24};
const env0_16 = Reflect.apply(createStyles, value, [object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createStyles = value.createStyles;
object = {header: {'marginBottom': 8, 'textAlign': 'center'}};
object.description = {textAlign: 'center'};
const object13 = {'display': 'flex', 'justifyContent': 'center', 'alignItems': 'center', 'height': 64, 'width': 64,
'borderRadius': null, 'backgroundColor': null, 'marginBottom': 24};
object13.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object13.backgroundColor = BACKGROUND_SURFACE_HIGH;
object.ring = object13;
const object14 = {'display': 'flex', 'justifyContent': 'center', 'alignItems': 'center', 'height': 48, 'width': 48};
object14.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
let STATUS_POSITIVE = (importDefault(697) /* metro dependency 697: native */).colors.STATUS_POSITIVE;
object14.backgroundColor = STATUS_POSITIVE;
object.iconContainer = object14;
STATUS_POSITIVE = (importDefault(697) /* metro dependency 697: native */).colors.STATUS_POSITIVE;
object.positive = {backgroundColor: STATUS_POSITIVE};
const BACKGROUND_FEEDBACK_CRITICAL = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_FEEDBACK_CRITICAL;
object.negative = {backgroundColor: BACKGROUND_FEEDBACK_CRITICAL};
const env0_17 = Reflect.apply(createStyles, value, [object]);
const env0_18 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {'flex': 1,
'justifyContent': 'center', 'alignItems': 'center'}});
value = require(4501) /* metro dependency 4501: createStyles */;
createStyles = value.createStyles;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
const env0_19 = Reflect.apply(createStyles, value, [{content: {'flex': 1, 'flexDirection': 'column',
'alignItems': 'center', 'justifyContent': 'center', 'paddingHorizontal': 32}, title: {textAlign: 'center',
marginBottom: PX_8}, description: {textAlign: 'center'}}]);
value = require(4501) /* metro dependency 4501: createStyles */;
createStyles = value.createStyles;
object = {content: {'flex': 1, 'flexDirection': 'column', 'alignItems': 'center', 'justifyContent': 'center',
'paddingHorizontal': 32}};
PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object.art = {'width': 165, 'height': 119, marginBottom: PX_24};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.title = {textAlign: 'center', marginBottom: PX_8};
object.description = {textAlign: 'center'};
const env0_20 = Reflect.apply(createStyles, value, [object]);
object = {headerShown: true};
object.headerLeft = (require(5282) /* metro dependency 5282: NavigatorHeaderNative */).getHeaderCloseButton((importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop);
object.headerTitle = function() {
return null;
};
(FileImportTrackerModule).fileFinishedImporting('modules/parent_tools/native/FamilyCenterModalRequest.tsx');
exports.default = FamilyCenterRequestModal;
exports.FamilyCenterModalRequestConfirm = FamilyCenterModalRequestConfirm2;
exports.FamilyCenterModalRequestSuccess = FamilyCenterModalRequestSuccess2;
exports.FamilyCenterModalRequestError = FamilyCenterModalRequestError2;
function FamilyCenterModalRequestConfirm({userId, linkCode, teenIdentity}) { // fn#96805, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:1178, offset: 0x02167ccb, size: 1841 bytes, params: 2, frame: 43
var r30;
var r8;
var jsxRuntimeEnv0_14Binding;
var items5;
const Text = (TextModule).Text;
const intl = (IndexNativeModule).intl;
const Avatar = (NativeModule).Avatar;
const AvatarSizes = (NativeModule).AvatarSizes;
var LARGE;
var formatToPlainString;
var kFj4h1;
var items2;
var ellipse;
var items3;
var object;
var global_name;
var items4;
var format;
var yiUJNU;
const styles = useStyles();
const value3 = (UseNavigationNativeModule).useNavigation();
const currentUser = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([UserStore],
function() {
return UserStore.getCurrentUser();
});
const {requestLink,
isRequestingLink} = (UseFamilyCenterActionsModule).useFamilyCenterActions({onSuccess: ReactModule.useCallback(_fun96807,
[value3]), onError: ReactModule.useCallback(_fun96808, [value3])});
const value7 = ReactModule.useCallback(function() {
requestLink(userId, linkCode);
}, [requestLink, userId, linkCode]);
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const ModalContent = (ModalContentNativeModule).ModalContent;
if (teenIdentity != null) {
var viewBindingProps = {style: styles.connectionHeader};
var viewBinding2Props = {style: styles.headerIcons};
var avatarProps = {source: currentUser != null ? (importDefault(1423) /* metro dependency 1423: AvatarUtils */).getUserAvatarSource(currentUser) : undefined};
LARGE = AvatarSizes.LARGE;
avatarProps.size = LARGE;
formatToPlainString = intl.formatToPlainString;
kFj4h1 = (importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).kFj4h1;
r30 = currentUser?.globalName ?? currentUser?.username ?? '';
avatarProps.accessibilityLabel = Reflect.apply(formatToPlainString, intl, [kFj4h1, {name: r30}]);
items2 = [
<Avatar {...avatarProps} />,
];
var viewBinding3Props = {style: styles.ellipseGroup};
ellipse = styles.ellipse;
items3 = [
<View style={ellipse} />,
];
ellipse = styles.ellipse;
items3[1] = <View style={ellipse} />;
ellipse = styles.ellipse;
items3[2] = <View style={ellipse} />;
items2[1] = (
<View {...viewBinding3Props}>
{items3}
</View>
);
var avatarProps2 = {source: (importDefault(1423) /* metro dependency 1423: AvatarUtils */).getUserAvatarSource({id: teenIdentity.id,
avatar: teenIdentity.avatar, discriminator: '0'})};
LARGE = AvatarSizes.LARGE;
avatarProps2.size = LARGE;
formatToPlainString = intl.formatToPlainString;
kFj4h1 = (importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).kFj4h1;
global_name = teenIdentity.global_name;
r30 = global_name ?? teenIdentity.username;
avatarProps2.accessibilityLabel = Reflect.apply(formatToPlainString, intl, [kFj4h1, {name: r30}]);
items2[2] = <Avatar {...avatarProps2} />;
items4 = [
<View {...viewBinding2Props}>
{items2}
</View>,
];
items4[1] = (
<Text
variant="heading-xl/bold"
color="mobile-text-heading-primary"
style={styles.title}
>
{intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).sMmIbm)}
</Text>
);
global_name = teenIdentity.global_name;
items4[2] = (
<Text
variant="heading-xl/bold"
color="mobile-text-heading-primary"
style={styles.teenName}
>
{global_name ?? teenIdentity.username}
</Text>
);
var textProps2 = {'variant': 'text-sm/medium', 'color': 'text-muted', style: styles.consent};
format = intl.format;
yiUJNU = (importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).yiUJNU;
global_name = teenIdentity.global_name;
items4[3] = (
<Text {...textProps2}>
{Reflect.apply(format, intl, [yiUJNU, {username: global_name ?? teenIdentity.username}])}
</Text>
);
r8 = (
<View {...viewBindingProps}>
{items4}
</View>
);
} else {
jsxRuntimeEnv0_14Binding = jsxRuntimeEnv0_14;
items5 = [
<Image style={styles.art} source={importDefault(12625) /* metro dependency 12625 */} />,
];
items5[1] = (
<Text style={styles.headerText} variant="text-lg/bold">
{intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).GH11eI)}
</Text>
);
r8 = (
<>
{items5}
</>
);
}
const modalContent = (
<ModalContent>
{r8}
{((Component) => <Component source="request-modal" />)(FamilyCenterDataConfirmation)}
</ModalContent>
);
const ModalFooter = (ModalFooterNativeModule).ModalFooter;
const ButtonGroup = (ButtonGroupNativeModule).ButtonGroup;
const Button = (ButtonNativeModule).Button;
const string = intl.string;
const ISg34l = (importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).ISg34l;
return (
<ModalScreen>
{modalContent}
<ModalFooter>
<ButtonGroup>
<Button
variant="primary"
size="lg"
disabled={isRequestingLink}
loading={isRequestingLink}
text={Reflect.apply(string, intl, [ISg34l])}
onPress={value7}
/>
<Button
variant="secondary"
size="lg"
text={intl.string((IndexNativeModule).t['ETE/oC'])}
onPress={(ModalActionCreators).pop}
/>
</ButtonGroup>
</ModalFooter>
</ModalScreen>
);
function _fun96807() { // fn#96807, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:1379, offset: 0x021683fc, size: 82 bytes, params: 1, frame: 14
(FamilyCenterActionCreators).clearPendingConnection();
const binding = env0_2;
const push = binding.push;
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
const SENT = FamilyCenterModalRequestSections.SENT;
Reflect.apply(push, binding, [SENT]);
}
function _fun96808(a0) { // fn#96808, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:1497, offset: 0x0216844e, size: 90 bytes, params: 2, frame: 16
let value = environment.__proto__;
value = require(5187) /* metro dependency 5187: FamilyCenterUtils */;
value = value.getFailureCodeForAPIError(a0);
const binding = env0_2;
const push = binding.push;
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
const ERROR = FamilyCenterModalRequestSections.ERROR;
Reflect.apply(push, binding, [ERROR, {failureCode: value}]);
}
}
function FamilyCenterModalRequestSuccess() { // fn#96810, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:3903, offset: 0x021684c1, size: 718 bytes, params: 1, frame: 40
const value2 = undefined;
const styles = useStyles();
const currentUser = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([UserStore],
function() {
return UserStore.getCurrentUser();
});
const value3 = ReactModule.useCallback(_fun96812, []);
if (currentUser === null) {
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
}
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const ModalContent = (ModalContentNativeModule).ModalContent;
const EnvelopeSpotIllustration = (NativeModule2).EnvelopeSpotIllustration;
const items2 = [
<View style={styles.illustration}>
<EnvelopeSpotIllustration scale={0.7} />
</View>,
];
const Text = (TextModule).Text;
const intl = (IndexNativeModule).intl;
const string = intl.string;
const EpwfZl = (importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).EpwfZl;
items2[1] = (
<Text
variant="heading-lg/bold"
color="mobile-text-heading-primary"
style={styles.header}
>
{Reflect.apply(string, intl, [EpwfZl])}
</Text>
);
items2[2] = (
<Text
variant="text-sm/medium"
color="text-muted"
style={styles.description}
>
{intl.format((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).dVtWId,
{email: currentUser == null ? value2 : currentUser.email})}
</Text>
);
const modalContent = (
<ModalContent>
<View style={styles.content}>
<View style={styles.textWrapper}>
{items2}
</View>
</View>
</ModalContent>
);
const ModalFooter = (ModalFooterNativeModule).ModalFooter;
const Button = (ButtonNativeModule).Button;
return (
<ModalScreen>
{modalContent}
<ModalFooter>
<Button
size="lg"
text={intl.string((IndexNativeModule).t.cpT0Cq)}
onPress={value3}
/>
</ModalFooter>
</ModalScreen>
);
function _fun96812() { // fn#96812, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:4032, offset: 0x0216878f, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
(ModalActionCreators).pop();
}
}
function FamilyCenterModalRequestError({failureCode}) { // fn#96813, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:5341, offset: 0x021687b4, size: 856 bytes, params: 2, frame: 34
const styles = useStyles();
const currentUser = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([UserStore],
function() {
return UserStore.getCurrentUser();
});
const value3 = (UseIsInAdultAgeGroup)();
const generateBoxShadowStyle = NativeModule.generateBoxShadowStyle;
const FOUR_DP_ELEVATION_SHADOW_PARAMS = NativeModule.FOUR_DP_ELEVATION_SHADOW_PARAMS;
const value4 = Reflect.apply(generateBoxShadowStyle, NativeModule, [FOUR_DP_ELEVATION_SHADOW_PARAMS]);
const value5 = ReactModule.useCallback(_fun96815, []);
(Module00044)(currentUser != null, 'User must be logged in to see this modal.');
const property = FAMILY_CENTER_LINK_REQUEST_ERROR_EXPERIENCES[failureCode];
object = {isAdult: value3 ?? undefined, email: currentUser.email ?? undefined};
const value6 = property.header(object);
const value7 = property.description(object);
const icon = property.icon;
let CHECK = FamilyCenterIconType.CHECK;
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const ModalContent = (ModalContentNativeModule).ModalContent;
const items4 = [styles.ring, value4];
const items2 = [styles.iconContainer];
items2[1] = icon === CHECK ? styles.positive : styles.negative;
CHECK = FamilyCenterIconType.CHECK;
const items3 = [
<View style={items4}>
<View style={items2}>
{
icon === CHECK
? (
<NativeModule.Icon source={importDefault(11365) /* metro dependency 11365 */} color="#FFF" />
)
: (
<NativeModule.Icon source={importDefault(8160) /* metro dependency 8160 */} color="#FFF" />
)
}
</View>
</View>,
];
const Text = (TextModule).Text;
items3[1] = (
<Text
variant="heading-lg/bold"
color="mobile-text-heading-primary"
style={styles.header}
>
{value6}
</Text>
);
items3[2] = (
<Text
variant="text-sm/medium"
color="text-muted"
style={styles.description}
>
{value7}
</Text>
);
const modalContent = (
<ModalContent>
{items3}
</ModalContent>
);
const ModalFooter = (ModalFooterNativeModule).ModalFooter;
const Button = (ButtonNativeModule).Button;
const intl = (IndexNativeModule).intl;
return (
<ModalScreen>
{modalContent}
<ModalFooter>
<Button
text={intl.string((IndexNativeModule).t.cpT0Cq)}
onPress={value5}
/>
</ModalFooter>
</ModalScreen>
);
function _fun96815() { // fn#96815, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:5574, offset: 0x0216878f, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
(ModalActionCreators).pop();
}
}
function FamilyCenterPrereqLoading({userId, linkCode}) { // fn#96816, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6483, offset: 0x02168b0c, size: 192 bytes, params: 2, frame: 20
const styles = useStyles();
const env0_2 = (UseNavigationNativeModule).useNavigation();
ReactModule.useEffect(function() {
var env0_0 = false;
_fun96818()();
return _fun96822;
}, []);
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const ActivityIndicator = (ActivityIndicatorNativeModule).ActivityIndicator;
return (
<ModalScreen>
<View style={styles.container}>
<ActivityIndicator />
</View>
</ModalScreen>
);
function _fun96817() { // fn#96817, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6597, offset: 0x02168bcc, size: 34 bytes, params: 1, frame: 10
_fun96818()();
return function() {
env0_0 = true;
};
function _fun96818() { // fn#96818, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6613, offset: 0x02168bee, size: 36 bytes, params: 1, frame: 12
const env0_0 = env2_3(_fun96820);
return _fun96821;
function* _fun96820() { // fn#96820, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6633, offset: 0x02168c1d, size: 220 bytes, params: 1, frame: 18
if (true) {
value = environment.__proto__.__proto__.__proto__.__proto__;
var value3 = env4_0(env4_2[11]);
yield value3.resolveConnectionPrereqTarget(require, importDefault);
var value5 = undefined;
if (false) {
return value5;
}
if (!userId) {
if (value5.section === env4_0(env4_2[11]).FamilyCenterModalRequestSections.ERROR) {
dependencyMap.replace(value5.section, value5.params);
} else if (value5.section === env4_0(env4_2[11]).FamilyCenterModalRequestSections.REQUEST) {
dependencyMap.replace(value5.section, value5.params);
} else {
dependencyMap.replace(value5.section);
}
}
}
}
function _fun96821() { // fn#96821, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:6890, offset: 0x00c3945f, size: 30 bytes, params: 1, frame: 13
return env0_0.apply(this, arguments);
}
}
function _fun96822() { // fn#96822, offset: 0x00e70226, size: 13 bytes, params: 1, frame: 2
}
}
}
function FamilyCenterPrereqScreen({title, description, primaryButton}) { // fn#96823, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:7293, offset: 0x02168cf9, size: 315 bytes, params: 2, frame: 28
const styles = useStyles();
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const Text = (TextModule).Text;
const view = (
<View style={styles.content}>
<Text
variant="heading-xl/bold"
color="mobile-text-heading-primary"
style={styles.title}
>
{title}
</Text>
<Text
variant="text-sm/medium"
color="text-muted"
style={styles.description}
>
{description}
</Text>
</View>
);
const ModalFooter = (ModalFooterNativeModule).ModalFooter;
const Button = (ButtonNativeModule).Button;
return (
<ModalScreen>
{view}
<ModalFooter>
<Button text={primaryButton.text} onPress={primaryButton.onPress} />
</ModalFooter>
</ModalScreen>
);
}
function useNavigateToVerifyingOnPending() { // fn#96824, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:8029, offset: 0x02168e34, size: 152 bytes, params: 1, frame: 18
const value2 = (UseNavigationNativeModule).useNavigation();
const value3 = (UseStateFromStoresModule).useStateFromStores([UserStore],
_fun96825);
ReactModule.useEffect(_fun96826, [value3, (UsePrevious)(value3),
value2]);
function _fun96825() { // fn#96825, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:8136, offset: 0x02168ecc, size: 35 bytes, params: 1, frame: 10
const value = environment.__proto__;
return UserStore.getCurrentUser()?.ageVerificationStatus;
}
function _fun96826() { // fn#96826, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:8244, offset: 0x02168eef, size: 145 bytes, params: 1, frame: 14
var binding;
var value5;
var replace;
let r1 = env0_2 != null && env0_2 !== env0_1 && env0_1 != null;
if (r1) {
binding = env0_1;
value5 = environment.__proto__;
r1 = binding !== (require(1909) /* metro dependency 1909: Server */).AgeVerificationStatusUkAndAusOnly.UNVERIFIED;
}
if (r1) {
binding = env0_0;
replace = binding.replace;
value = environment.__proto__;
Reflect.apply(replace, binding,
[(require(12623) /* metro dependency 12623: FamilyCenterModalRequestRouting */).FamilyCenterModalRequestSections.VERIFYING]);
}
}
}
function FamilyCenterConfirmAgeScreen() { // fn#96827, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:8407, offset: 0x02168f80, size: 662 bytes, params: 1, frame: 34
const styles = useStyles();
useNavigateToVerifyingOnPending();
const value2 = ReactModule.useCallback(function() {
var defaultImport = importDefault(dependencyMap[35]);
var object = {};
object.entryPoint = require(dependencyMap[36]).AgeVerificationModalEntryPoint.FAMILY_CENTER_CONNECTION;
defaultImport.showAgeVerificationGetStartedModal(object);
}, []);
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const items2 = [
<Image style={styles.art} source={Module12625} />,
];
const Text = (TextModule).Text;
const intl = (IndexNativeModule).intl;
items2[1] = (
<Text
variant="heading-xl/bold"
color="mobile-text-heading-primary"
style={styles.title}
>
{intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).pQQMJ7)}
</Text>
);
items2[2] = (
<Text
variant="text-sm/medium"
color="text-muted"
style={styles.description}
>
{intl.format((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */)['0o3yg8'],
{link: 'https://support.discord.com/hc/articles/14155060633623'})}
</Text>
);
const view = (
<View style={styles.content}>
{items2}
</View>
);
const ModalFooter = (ModalFooterNativeModule).ModalFooter;
const ButtonGroup = (ButtonGroupNativeModule).ButtonGroup;
const Button = (ButtonNativeModule).Button;
return (
<ModalScreen>
{view}
<ModalFooter>
<ButtonGroup>
<Button
variant="primary"
text={(IndexNativeModule).intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */)['3oUE4o'])}
onPress={value2}
/>
<Button
variant="tertiary"
text={intl.string((IndexNativeModule).t.oEAioF)}
onPress={onPress_96829}
/>
</ButtonGroup>
</ModalFooter>
</ModalScreen>
);
function FamilyCenterConfirmAgeScreenOnPress() { // fn#96829, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:9348, owner: FamilyCenterConfirmAgeScreen.onPress, offset: 0x0216925f, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
return (ModalActionCreators).pop();
}
}
function FamilyCenterVerifyingScreen() { // fn#96830, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:9377, offset: 0x02169284, size: 304 bytes, params: 1, frame: 21
const styles = useStyles();
const value2 = (UseNavigationNativeModule).useNavigation();
const value3 = (AgeVerificationUtilsModule).useIsAgeVerified();
const value4 = (UseStateFromStoresModule).useStateFromStores([UserStore],
_fun96831);
const env0_3 = ReactModule.useRef(false);
ReactModule.useEffect(_fun96832, [value3, value4, value2]);
ReactModule.useEffect(function() {
var env0_0 = global.setTimeout(_fun96834, FAMILY_CENTER_AGE_VERIFICATION_RESUME_TIMEOUT);
return _fun96835;
}, [value2]);
const ModalScreen = (ModalScreenNativeModule).ModalScreen;
const ActivityIndicator = (ActivityIndicatorNativeModule).ActivityIndicator;
return (
<ModalScreen>
<View style={styles.container}>
<ActivityIndicator />
</View>
</ModalScreen>
);
function _fun96831() { // fn#96831, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:9516, offset: 0x02168ecc, size: 35 bytes, params: 1, frame: 10
const value = environment.__proto__;
return UserStore.getCurrentUser()?.ageVerificationStatus;
}
function _fun96832() { // fn#96832, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:9632, offset: 0x021693b4, size: 255 bytes, params: 1, frame: 17
var binding;
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
var value3;
var moduleValue;
if (env0_1) {
if (env0_3.current) {
return undefined;
}
env0_3.current = true;
value3 = environment.__proto__;
moduleValue = require(12620) /* metro dependency 12620: FamilyCenterNativeUtils */;
if (!moduleValue.resumeFamilyCenterConnection()) {
binding = env0_0;
binding.replace(FamilyCenterModalRequestSections.ERROR,
{failureCode: FamilyCenterFailureCode.GENERIC_ERROR});
}
} else {
binding = env0_2;
var AgeVerificationStatusUkAndAusOnly = (require(1909) /* metro dependency 1909: Server */).AgeVerificationStatusUkAndAusOnly;
var UNVERIFIED = AgeVerificationStatusUkAndAusOnly.UNVERIFIED;
if (binding === UNVERIFIED) {
binding = env0_0;
binding.replace(FamilyCenterModalRequestSections.ERROR,
{failureCode: FamilyCenterFailureCode.GENERIC_ERROR});
}
}
}
function _fun96833() { // fn#96833, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:9991, offset: 0x021694b3, size: 45 bytes, params: 1, frame: 14
const env0_0 = global.setTimeout(_fun96834, FAMILY_CENTER_AGE_VERIFICATION_RESUME_TIMEOUT);
return _fun96835;
function _fun96834() { // fn#96834, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:10014, offset: 0x021694e0, size: 74 bytes, params: 1, frame: 15
const binding = env1_0;
const replace = binding.replace;
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
const ERROR = FamilyCenterModalRequestSections.ERROR;
const GENERIC_ERROR = FamilyCenterFailureCode.GENERIC_ERROR;
Reflect.apply(replace, binding, [ERROR, {failureCode: GENERIC_ERROR}]);
}
function _fun96835() { // fn#96835, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:10119, offset: 0x016d7e7e, size: 24 bytes, params: 1, frame: 11
return global.clearTimeout(env0_0);
}
}
}
function FamilyCenterPrereqInvalidCodeScreen() { // fn#96836, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:10248, offset: 0x0216952a, size: 208 bytes, params: 1, frame: 21
const object = {};
const intl = (IndexNativeModule).intl;
let string = intl.string;
object.title = Reflect.apply(string, intl,
[(importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).ewSb6o]);
object.description = intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */).jcUN2F);
const object2 = {};
string = intl.string;
const WAI6xu = (IndexNativeModule).t.WAI6xu;
object2.text = Reflect.apply(string, intl, [WAI6xu]);
object2.onPress = (importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop;
object.primaryButton = object2;
return <FamilyCenterPrereqScreen {...object} />;
}
function FamilyCenterPrereqMustBeAdultScreen() { // fn#96837, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:10508, offset: 0x021695fa, size: 259 bytes, params: 1, frame: 23
useNavigateToVerifyingOnPending();
const value2 = ReactModule.useCallback(function() {
var defaultImport = importDefault(dependencyMap[35]);
var object = {};
object.entryPoint = require(dependencyMap[36]).AgeVerificationModalEntryPoint.FAMILY_CENTER_CONNECTION;
defaultImport.showAgeVerificationGetStartedModal(object);
}, []);
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const BQFHXW = (FamilyCenterMessages).BQFHXW;
const format = intl.format;
const WDjaKn = (FamilyCenterMessages).WDjaKn;
let object = {};
object.text = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['NX+WJN']);
object.onPress = (importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop;
return (
<FamilyCenterPrereqScreen
title={Reflect.apply(string, intl, [BQFHXW])}
description={Reflect.apply(format, intl, [WDjaKn, {link: {onClick: value2}}])}
primaryButton={object}
/>
);
}
function FamilyCenterRequestModal({userId, linkCode}) { // fn#96840, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11179, offset: 0x021696fd, size: 293 bytes, params: 2, frame: 19
const value2 = (UseIsInAdultAgeGroup)();
const FamilyCenterConnectionPrereqExperiment = (FamilyCenterConnectionPrereqExperimentModule).FamilyCenterConnectionPrereqExperiment;
const useConfig = FamilyCenterConnectionPrereqExperiment.useConfig;
const enabled = Reflect.apply(useConfig, FamilyCenterConnectionPrereqExperiment,
[{location: 'FamilyCenterRequestModal'}]).enabled;
const value3 = ReactModule.useMemo(function() {
return _fun96842(userId, linkCode);
}, [linkCode, userId]);
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
const r5 = enabled ? FamilyCenterModalRequestSections.PREREQ_LOADING : value2 ? FamilyCenterModalRequestSections.REQUEST : FamilyCenterModalRequestSections.TEEN_SCAN;
const Modal = (ModalNativeModule).Modal;
const intl = (IndexNativeModule).intl;
return (
<Modal
initialRouteName={r5}
screens={value3}
headerBackTitle={intl.string((IndexNativeModule).t['13/7kX'])}
/>
);
function _fun96841() { // fn#96841, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11375, offset: 0x02169822, size: 30 bytes, params: 1, frame: 13
return getScreens_96842(userId, linkCode);
function getScreens_96842(a0, a1) { // fn#96842, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11379, offset: 0x02169840, size: 682 bytes, params: 3, frame: 25
var environment;
const env0_0 = a0;
const env0_1 = a1;
const object = {};
const value = environment.__proto__.__proto__;
const FamilyCenterModalRequestSections = (FamilyCenterModalRequestRoutingModule).FamilyCenterModalRequestSections;
const PREREQ_LOADING = FamilyCenterModalRequestSections.PREREQ_LOADING;
const object2 = {};
const binding = env2_21;
copyDataProperties(object2, binding, undefined);
object2['render'] = getScreens_96842Render;
object[PREREQ_LOADING] = object2;
const CONFIRM_AGE = FamilyCenterModalRequestSections.CONFIRM_AGE;
const object3 = {};
copyDataProperties(object3, binding, undefined);
object3['render'] = getScreens_96842Render_96844;
object[CONFIRM_AGE] = object3;
const VERIFYING = FamilyCenterModalRequestSections.VERIFYING;
const object4 = {};
copyDataProperties(object4, binding, undefined);
object4['render'] = getScreens_96842Render_96845;
object[VERIFYING] = object4;
const REQUEST = FamilyCenterModalRequestSections.REQUEST;
const object5 = {};
object5.headerLeft = NavigatorHeaderNativeModule.getHeaderCloseButton((importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop);
object5.headerShown = true;
object5.headerTitle = function() {
return null;
};
object5.render = render_96847;
object[REQUEST] = object5;
const INVALID_CODE = FamilyCenterModalRequestSections.INVALID_CODE;
const object6 = {};
copyDataProperties(object6, binding, NavigatorHeaderNativeModule);
object6['render'] = getScreens_96842Render_96848;
object[INVALID_CODE] = object6;
const MUST_BE_ADULT = FamilyCenterModalRequestSections.MUST_BE_ADULT;
const object7 = {};
copyDataProperties(object7, binding, NavigatorHeaderNativeModule);
object7['render'] = getScreens_96842Render_96849;
object[MUST_BE_ADULT] = object7;
const SENT = FamilyCenterModalRequestSections.SENT;
const object8 = {headerShown: true};
object8.headerLeft = NavigatorHeaderNativeModule.getHeaderCloseButton((importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop);
object8.headerTitle = function() {
return null;
};
object8.render = render_96851;
object[SENT] = object8;
const ERROR = FamilyCenterModalRequestSections.ERROR;
const object9 = {headerShown: true};
object9.headerLeft = NavigatorHeaderNativeModule.getHeaderCloseButton((importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop);
object9.headerTitle = function() {
return null;
};
object9.render = render_96853;
object[ERROR] = object9;
const TEEN_SCAN = FamilyCenterModalRequestSections.TEEN_SCAN;
const object10 = {fullscreen: true};
object10.headerLeft = NavigatorHeaderNativeModule.getHeaderCloseButton((importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop);
object10.render = render_96854;
object[TEEN_SCAN] = object10;
return object;
function getScreens_96842Render() { // fn#96843, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11483, owner: getScreens_96842.render, offset: 0x02169aea, size: 43 bytes, params: 1, frame: 14
return <FamilyCenterPrereqLoading userId={env0_0} linkCode={require} />;
}
function getScreens_96842Render_96844() { // fn#96844, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11608, owner: getScreens_96842.render, offset: 0x02169b15, size: 23 bytes, params: 1, frame: 13
return <FamilyCenterConfirmAgeScreen />;
}
function getScreens_96842Render_96845() { // fn#96845, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11715, owner: getScreens_96842.render, offset: 0x02169b2c, size: 23 bytes, params: 1, frame: 13
return <FamilyCenterVerifyingScreen />;
}
function getScreens_96842Render_96847(a0) { // fn#96847, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:11905, owner: getScreens_96842.render, offset: 0x02169b43, size: 68 bytes, params: 2, frame: 16
const value = environment.__proto__.__proto__.__proto__;
return (
<FamilyCenterModalRequestConfirm
userId={env0_0}
linkCode={require}
teenIdentity={a0?.teenIdentity}
/>
);
}
function getScreens_96842Render_96848() { // fn#96848, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:12079, owner: getScreens_96842.render, offset: 0x02169b87, size: 23 bytes, params: 1, frame: 13
return <FamilyCenterPrereqInvalidCodeScreen />;
}
function getScreens_96842Render_96849() { // fn#96849, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:12197, owner: getScreens_96842.render, offset: 0x02169b9e, size: 23 bytes, params: 1, frame: 13
return <FamilyCenterPrereqMustBeAdultScreen />;
}
function getScreens_96842Render_96851() { // fn#96851, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:12392, owner: getScreens_96842.render, offset: 0x02169bb5, size: 23 bytes, params: 1, frame: 13
return <FamilyCenterModalRequestSuccess />;
}
function getScreens_96842Render_96853({failureCode}) { // fn#96853, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:12584, owner: getScreens_96842.render, offset: 0x02169bcc, size: 37 bytes, params: 2, frame: 13
return <FamilyCenterModalRequestError failureCode={failureCode} />;
}
function getScreens_96842Render_96854() { // fn#96854, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12812:12784, owner: getScreens_96842.render, offset: 0x02169bf1, size: 38 bytes, params: 1, frame: 13
const INELIGIBLE_FOR_FAMILY_CENTER = FamilyCenterFailureCode.INELIGIBLE_FOR_FAMILY_CENTER;
return <FamilyCenterModalRequestError failureCode={INELIGIBLE_FOR_FAMILY_CENTER} />;
}
}
}
}
}
global.__d(_fun96804, 12622, [5, 31, 27, 1878, 5117, 33, 4501, 697, 1484, 632, 5118, 12623, 5187, 12624, 6258, 6259,
1305, 1423, 1244, 2224, 4573, 12625, 12626, 10120, 6261, 4578, 5080, 5473, 8171, 44, 11365, 8160, 5461, 6266,
1909, 5263, 5074, 4813, 12620, 5282, 12632, 10121,
2]) /* metro module 12622, dependencies: [5, 31, 27, 1878, 5117, 33, 4501, 697, 1484, 632, 5118, 12623, 5187, 12624, 6258, 6259, 1305, 1423, 1244, 2224, 4573, 12625, 12626, 10120, 6261, 4578, 5080, 5473, 8171, 44, 11365, 8160, 5461, 6266, 1909, 5263, 5074, 4813, 12620, 5282, 12632, 10121, 2] */;