/* Metro module 12035; source: modules/accept_invite/native/InviteDetails.tsx; dependencies: [57, 31, 27, 11876, 1885, 1878, 661, 9445, 33, 4501, 697, 6235, 4116, 1305, 11976, 3995, 1244, 8642, 4573, 1423, 5475, 683, 566, 12036, 9048, 4578, 6261, 2] */ import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */ import AnalyticsUtils from '../../../utils/AnalyticsUtils.tsx'; /* Metro dependency 683 */ import UserStore from '../../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import UserRecord from '../../../records/UserRecord.tsx'; /* Metro dependency 1885 */ import MultiAccountStore from '../../multi_account/MultiAccountStore.tsx'; /* Metro dependency 11876 */ 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 ConstantsModule from '../../../Constants.tsx'; /* Metro dependency 661 */ import * as InviteTypeUtilsModule from '../../instant_invite/InviteTypeUtils.tsx'; /* Metro dependency 4116 */ import * as TextModule from '../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */ import * as LegacyTokensModule from '../../../design/migrations/native/LegacyTokens.tsx'; /* Metro dependency 6235 */ import * as ButtonGroupNativeModule from '../../../design/components/ButtonGroup/native/ButtonGroup.native.tsx'; /* Metro dependency 6261 */ import * as HubConstantsModule from '../../hub/HubConstants.tsx'; /* Metro dependency 9445 */ function _fun92500(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#92500, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:6, offset: 0x0208c23c, size: 957 bytes, params: 8, frame: 26 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ConstantsModule; const env0_9 = value.AnalyticEvents; const env0_10 = value.InviteStates; 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 */; const createStyles = value.createStyles; object = {}; const object2 = {'height': 64, 'width': 64, 'margin': 0}; object2.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg; object.avatar = object2; const object3 = {'borderRadius': null, 'height': 64, 'width': 64, 'marginBottom': 24, 'marginTop': 24}; object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.none; object.avatarContainer = object3; object.inviteJoinContainer = {'flexDirection': 'row', 'alignItems': 'flex-start', 'marginBottom': 8, 'marginLeft': 16, 'marginRight': 16}; object.inviteJoinText = {textAlign: 'center'}; const object5 = {}; object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.none; object5.marginRight = 8; object.inviterIconWrapper = object5; const object6 = {'width': 20, 'height': 20}; object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md; object.inviterIcon = object6; object.guildNameContainer = {'flexDirection': 'row', 'alignItems': 'center', 'marginBottom': 8}; object.guildNameText = {textAlign: 'center'}; const DARK_1_LIGHT_04 = (LegacyTokensModule).DARK_1_LIGHT_04; object.featureIcon = {'flexGrow': 0, 'marginRight': 8, opacity: DARK_1_LIGHT_04}; object.memberInfo = {'flexDirection': 'row', 'alignItems': 'center', 'marginBottom': 8}; object.rolesList = {'marginTop': 8, 'marginBottom': 8, 'alignItems': 'center'}; const object9 = {'width': 8, 'height': 8, 'borderRadius': null, 'marginRight': 4}; object9.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm; const GREEN_360 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.GREEN_360; object9.backgroundColor = GREEN_360; object.dotOnline = object9; const object10 = {'width': 8, 'height': 8, 'borderRadius': null, 'marginRight': 4, 'marginLeft': 16}; object10.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm; const PRIMARY_400 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PRIMARY_400; object10.backgroundColor = PRIMARY_400; object.dotOffline = object10; const object11 = {'width': '100%', 'backgroundColor': null, 'padding': 16, 'borderRadius': null, 'marginTop': 16, 'marginBottom': 8}; const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH; object11.backgroundColor = BACKGROUND_SURFACE_HIGH; object11.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm; object.embedDetailsCard = object11; const env0_15 = Reflect.apply(createStyles, value, [object]); const getMemberCountFromInvite = function(a0) { var object = {}; var property = a0.approximate_presence_count; var value = null; var value2 = 0; object.onlineCount = value != property ? property : value2; property = a0.approximate_member_count; object.memberCount = value != property ? property : value2; return value2 === object.memberCount ? value : object; }; object = {ACCEPT: 0}; object[0] = 'ACCEPT'; object.DECLINE = 1; object[1] = 'DECLINE'; (FileImportTrackerModule).fileFinishedImporting('modules/accept_invite/native/InviteDetails.tsx'); exports.default = InviteDetails; function InviteDestinationIcon({invite}) { // fn#92501, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:1889, offset: 0x0208c5f9, size: 341 bytes, params: 2, frame: 25 var r4; var r5; var inviter; var value2; var guild; var value3; var Avatar; var userRecordBinding; var userRecord2; var value; const styles = useStyles(); const items2 = [styles.avatarContainer]; if (InviteTypeUtilsModule.isGroupDMInvite(invite)) { inviter = invite.inviter; value2 = null; if (value2 != inviter) { inviter = invite.inviter; if (value2 != inviter) { Avatar = (require(1305) /* metro dependency 1305: native */).Avatar; var avatarProps = {avatarStyle: styles.avatar}; userRecordBinding = UserRecord; inviter = invite.inviter; userRecord2 = new userRecordBinding(); avatarProps.user = userRecord2; avatarProps.guildId = undefined; avatarProps.size = (require(1305) /* metro dependency 1305: native */).AvatarSizes.XLARGE; userRecord2 = ; r5 = userRecord2; } else { r5 = value2; } r4 = r5; } else { guild = invite.guild; value3 = null; if (value3 != guild) { value = importDefault(11976) /* metro dependency 11976: GuildInviteIcon */; value = ((Component) => )(value); r4 = value; } else { r4 = value3; } } } else { guild = invite.guild; value3 = null; if (value3 != guild) { value = importDefault(11976) /* metro dependency 11976: GuildInviteIcon */; value = ((Component) => )(value); r4 = value; } else { r4 = value3; } } return ( {r4} ); } function InviteHeader({invite}) { // fn#92502, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:2269, offset: 0x0208c74e, size: 449 bytes, params: 2, frame: 22 var name; var r0; var r9; var defaultImport; var intl; var formatToPlainString; var property; var defaultImport2; const styles = useStyles(); if (InviteTypeUtilsModule.isGroupDMInvite(invite)) { name = invite.channel?.name; if (name != null) { r0 = name; } else { defaultImport = importDefault(3995) /* metro dependency 3995: UserUtils */; r0 = defaultImport.getFormattedName(invite.inviter); } r9 = r0; } else { r9 = invite.guild?.name; } if (InviteTypeUtilsModule.isFriendInvite(invite)) { intl = (require(1244) /* metro dependency 1244: indexNative */).intl; formatToPlainString = intl.formatToPlainString; property = (require(1244) /* metro dependency 1244: indexNative */).t['4aF92R']; defaultImport2 = importDefault(3995) /* metro dependency 3995: UserUtils */; r9 = Reflect.apply(formatToPlainString, intl, [property, {username: defaultImport2.getFormattedName(invite.inviter)}]); } return ( r9 == null ? null : ( {((Component) => )(importDefault(8642) /* metro dependency 8642: GuildBadge */)} {((Heading) => {r9})((require(4573) /* metro dependency 4573: Text */).Heading)} ) ); } function InviteJoinContext({invite, isRegistration, isGuildMember}) { // fn#92503, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:2851, offset: 0x0208c90f, size: 1063 bytes, params: 2, frame: 27 var r2; var r8; var r6; var moduleValue2; var moduleValue3; var format; var spU2mI; var defaultImport; var formatToPlainString; var x2L32Q; var defaultImport2; var Lu4h18; var defaultImport3; var Quj7HX; var defaultImport4; var moduleValue4; const styles = useStyles(); const value2 = ReactModule.useMemo(_fun92504, [invite, isGuildMember]); const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; let string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const value3 = Reflect.apply(string, intl, [t['3rE1P8']]); if ((require(4116) /* metro dependency 4116: InviteTypeUtils */).isFriendInvite(invite)) { format = intl.format; Quj7HX = (require(1244) /* metro dependency 1244: indexNative */).t.Quj7HX; defaultImport4 = importDefault(3995) /* metro dependency 3995: UserUtils */; r8 = Reflect.apply(format, intl, [Quj7HX, {username: defaultImport4.getFormattedName(invite.inviter)}]); } else { moduleValue2 = require(4116) /* metro dependency 4116: InviteTypeUtils */; if (moduleValue2.isGroupDMInvite(invite)) { if (invite.channel == null) { r2 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.OsdY8B); } else if (invite.inviter != null) { format = intl.format; Lu4h18 = (require(1244) /* metro dependency 1244: indexNative */).t.Lu4h18; defaultImport3 = importDefault(3995) /* metro dependency 3995: UserUtils */; r2 = Reflect.apply(format, intl, [Lu4h18, {username: defaultImport3.getFormattedName(invite.inviter)}]); } else { r2 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.OsdY8B); } r8 = r2; } else { moduleValue3 = require(4116) /* metro dependency 4116: InviteTypeUtils */; if (moduleValue3.isStreamInvite(invite)) { if (invite.target_user != null) { formatToPlainString = intl.formatToPlainString; x2L32Q = (require(1244) /* metro dependency 1244: indexNative */).t.x2L32Q; defaultImport2 = importDefault(3995) /* metro dependency 3995: UserUtils */; r8 = Reflect.apply(formatToPlainString, intl, [x2L32Q, {username: defaultImport2.getFormattedName(invite.target_user)}]); } else if (isAlreadyMember(invite, isGuildMember)) { string = intl.string; r8 = isRegistration ? Reflect.apply(string, intl, [t.jpwYbt]) : Reflect.apply(string, intl, [t['FDsl+J']]); } else if (shouldShowInviter(invite, isGuildMember) && invite.inviter != null) { format = intl.format; spU2mI = (require(1244) /* metro dependency 1244: indexNative */).t.spU2mI; defaultImport = importDefault(3995) /* metro dependency 3995: UserUtils */; r8 = Reflect.apply(format, intl, [spU2mI, {username: defaultImport.getFormattedName(invite.inviter)}]); } else { r8 = value3; } } else if (isAlreadyMember(invite, isGuildMember)) { string = intl.string; r8 = isRegistration ? Reflect.apply(string, intl, [t.jpwYbt]) : Reflect.apply(string, intl, [t['FDsl+J']]); } else if (shouldShowInviter(invite, isGuildMember) && invite.inviter != null) { format = intl.format; spU2mI = (require(1244) /* metro dependency 1244: indexNative */).t.spU2mI; defaultImport = importDefault(3995) /* metro dependency 3995: UserUtils */; r8 = Reflect.apply(format, intl, [spU2mI, {username: defaultImport.getFormattedName(invite.inviter)}]); } else { r8 = value3; } } } if (value2 == null) { r6 = null; } else { moduleValue4 = require(4116) /* metro dependency 4116: InviteTypeUtils */; r6 = ( moduleValue4.isFriendInvite(invite) ? null : ( {((Component) => )(importDefault(5475) /* metro dependency 5475: FastImage */)} ) ); } const Text = (TextModule).Text; return ( {r6} {r8} ); function _fun92504() { // fn#92504, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:2946, offset: 0x0208cd36, size: 192 bytes, params: 1, frame: 16 var r0; var shouldShowInviter2; var value3; let value = environment.__proto__; if (InviteTypeUtilsModule.isStreamInvite(invite)) { if (invite.target_user != null) { value = importDefault(1423) /* metro dependency 1423: AvatarUtils */; value = value.getUserAvatarSource(invite.target_user); r0 = value; } else { shouldShowInviter2 = shouldShowInviter(invite, isGuildMember); value3 = null; if (shouldShowInviter2) { if (value3 != invite.inviter) { value = importDefault(1423) /* metro dependency 1423: AvatarUtils */; value = value.getUserAvatarSource(invite.inviter); r0 = value; } else { r0 = value3; } } else { r0 = value3; } } } else { shouldShowInviter2 = shouldShowInviter(invite, isGuildMember); value3 = null; if (shouldShowInviter2) { if (value3 != invite.inviter) { value = importDefault(1423) /* metro dependency 1423: AvatarUtils */; value = value.getUserAvatarSource(invite.inviter); r0 = value; } else { r0 = value3; } } else { r0 = value3; } } return r0; } } function InviteMemberCounts({invite, isGuildMember}) { // fn#92505, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:4163, offset: 0x0208cdf6, size: 533 bytes, params: 2, frame: 31 var r7; var r6; var r0; var jsxRuntimeEnv0_14Binding; var items4; const Text = (TextModule).Text; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; var items2; var items3; const styles = useStyles(); const memberCountFromInvite = getMemberCountFromInvite(invite); if (memberCountFromInvite == null) { r0 = null; } else if (shouldShowInviter(invite, isGuildMember)) { r0 = null; } else if ((invite == null || invite.guild == null ? undefined : invite.guild.id) === INVITE_ROUTING_HUB_GUILD_ID) { r0 = null; } else { var viewBindingProps = {style: styles.memberInfo}; if (memberCountFromInvite.onlineCount != null) { jsxRuntimeEnv0_14Binding = jsxRuntimeEnv0_14; items4 = [ , ]; items4[1] = ( {intl.format((require(1244) /* metro dependency 1244: indexNative */).t['LC+S+m'], {membersOnline: memberCountFromInvite.onlineCount})} ); r7 = ( <> {items4} ); } else { r7 = null; } items2 = [r7]; if (memberCountFromInvite.memberCount != null) { jsxRuntimeEnv0_14Binding = jsxRuntimeEnv0_14; items3 = [ , ]; items3[1] = ( {intl.format((require(1244) /* metro dependency 1244: indexNative */).t.zRl6XR, {count: memberCountFromInvite.memberCount})} ); r6 = ( <> {items3} ); } else { r6 = null; } items2[1] = r6; r0 = ( {items2} ); } return r0; } function isAlreadyMember(a0, a1) { // fn#92507, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:1691, offset: 0x0208d053, size: 33 bytes, params: 3, frame: 3 return a1 && a0.state !== InviteStates.ACCEPTED; } function shouldShowInviter(a0, a1) { // fn#92508, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:1740, offset: 0x0208d074, size: 93 bytes, params: 3, frame: 15 var memberCount; var getMemberCountFromInviteBinding; var memberCountFromInviteBinding; let value = a0.inviter != null; let r0 = value && !isAlreadyMember(a0, a1); if (r0) { getMemberCountFromInviteBinding = getMemberCountFromInvite; value = undefined; memberCountFromInviteBinding = getMemberCountFromInviteBinding(a0); memberCount = memberCountFromInviteBinding == null ? value : memberCountFromInviteBinding.memberCount; value = 0; value = !((memberCount ?? value) > 100); r0 = value; } return r0; } function InviteDetails({invite, isGuildMember, onPressJoin, onPressClose, isRegistration}) { // fn#92509, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12221:4982, offset: 0x0208d0d1, size: 1234 bytes, params: 2, frame: 36 var r18; var r19; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; var value15; const styles = useStyles(); let binding = ReactModule; const [property, env0_3] = env0_3Binding(binding.useState(), 2); const guild_scheduled_event = invite.guild_scheduled_event; const currentUser = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() { return UserStore.getCurrentUser(); }); const canUseMultiAccountMobile = (require(566) /* metro dependency 566: flux */).useStateFromStores([MultiAccountStore], function() { return MultiAccountStore.getCanUseMultiAccountMobile(); }); const jsxRuntimeEnv0_14Binding = jsxRuntimeEnv0_14; const items3 = [ , ]; items3[1] = ; items3[2] = ; items3[3] = ; items3[4] = ((Component) => )(importDefault(12036) /* metro dependency 12036: InviteRolesList */); items3[5] = guild_scheduled_event != null && {((GuildEventCardHeader) => )((require(9048) /* metro dependency 9048: GuildEventCardComponents */).GuildEventCardHeader)}{((GuildEventCardMetaInfo) => )((require(9048) /* metro dependency 9048: GuildEventCardComponents */).GuildEventCardMetaInfo)}{((GuildEventCardGuildInfo) => )((require(9048) /* metro dependency 9048: GuildEventCardComponents */).GuildEventCardGuildInfo)}; const isAlreadyMember2 = isAlreadyMember(invite, isGuildMember); const r11 = currentUser != null ? (importDefault(1423) /* metro dependency 1423: AvatarUtils */).getUserAvatarSource(currentUser, false, 20) : null; const r21 = ( r11 != null ? ((Icon) => )((require(4578) /* metro dependency 4578: ButtonNative */).Button.Icon) : undefined ); const r5 = currentUser != null ? intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t['9sWQNT'], {usernameHook: usernameHook_92514}) : undefined; let string = (require(1244) /* metro dependency 1244: indexNative */).intl.string; if (isAlreadyMember2) { value15 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.IRoQXr); r18 = value15; r19 = value15; } else if (canUseMultiAccountMobile && r5 != null) { r18 = r5; r19 = r5; } else { r18 = r5; r19 = Reflect.apply(string, intl, [(require(1244) /* metro dependency 1244: indexNative */).t['e/6Ogt']]); } const ButtonGroup = (ButtonGroupNativeModule).ButtonGroup; const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button; const buttonProps = {'icon': null, 'variant': 'primary', 'size': 'lg', icon: r21, text: r19, accessibilityLabel: r18, onPress: onPress_92510}; binding = env0_19; let ACCEPT = binding.ACCEPT; buttonProps.loading = property === ACCEPT; ACCEPT = binding.ACCEPT; buttonProps.disabled = property === ACCEPT; const button =