/* Metro module 3995; source: utils/UserUtils.tsx; dependencies: [3996, 1878, 661, 566, 1244, 2] */ function _fun32805(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#32805, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:6, offset: 0x0101eb41, size: 440 bytes, params: 8, frame: 30 var object2; let env0_0 = require; const conceal = function([property]) { return '' + property + '…'; }; const present = function(a0) { return !!(a0 != null && a0.length > 0); }; const closure = nameFromUser; const closure2 = getName_32809; const closure3 = useName; const closure4 = getGlobalName; const closure5 = getFormattedName; const closure6 = humanizeStatus; const closure7 = accountAgeInRange; const closure8 = getUserTag; const closure9 = useUserTag; const closure10 = function(a0) { var env0_0 = a0; return require(dependencyMap[3]).useStateFromStores([UserStore], _fun32821); }; const closure11 = getUserIsStaff; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const streamerModeStore = importDefault(3996) /* metro dependency 3996: StreamerModeStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const constantsModule = require(661) /* metro dependency 661: Constants */; const env0_4 = constantsModule.NON_USER_BOT_DISCRIMINATOR; const env0_5 = constantsModule.StatusTypes; const env0_8 = {'mode': 'full', 'decoration': 'never', 'identifiable': 'auto'}; object2 = {getName: closure2, useName: closure3, isNameConcealed: function(a0) { return a0.length === 2 && a0.endsWith('…'); }, getUserTag: closure8, useUserTag: closure9, getUserIsStaff: closure11, getFormattedName: closure5, getGlobalName: closure4, humanizeStatus: closure6, useDirectMessageRecipient: closure10}; (require(2) /* metro dependency 2 */).fileFinishedImporting('utils/UserUtils.tsx'); exports.default = object2; exports.nameFromUser = closure; exports.getName = closure2; exports.useName = closure3; exports.getGlobalName = closure4; exports.getFormattedName = closure5; exports.humanizeStatus = closure6; exports.accountAgeInRange = closure7; exports.ageEligibleForPremiumUpsell = function(a0) { return !accountAgeInRange(a0, {'minDaysOld': 0, 'maxDaysOld': 30}); }; exports.isNewUser = function(a0) { return accountAgeInRange(a0, {'minDaysOld': 0, 'maxDaysOld': 7}); }; exports.getUserTag = closure8; exports.useUserTag = closure9; exports.useDirectMessageRecipient = closure10; exports.getUserIsStaff = closure11; } function nameFromUser(a0) { // fn#32808, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:337, offset: 0x0101ed40, size: 92 bytes, params: 2, frame: 13 return present(a0.global_name) ? a0.global_name : present(a0.globalName) ? a0.globalName : present(a0.username) ? a0.username : env0_7; } function getName_32809(a0) { // fn#32809, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:474, offset: 0x0101ed9c, size: 115 bytes, params: 2, frame: 17 var r4; var hidePersonalInformation; var nameFromUserBinding; var value2; var value3; var value4; var username; if (a0 != null) { hidePersonalInformation = StreamerModeStore.hidePersonalInformation; nameFromUserBinding = nameFromUser; value2 = undefined; value3 = nameFromUserBinding(a0); if (hidePersonalInformation) { value4 = value3.toLocaleLowerCase(); username = a0.username; r4 = value4 === (username == null ? value2 : username.toLocaleLowerCase()); } else { r4 = hidePersonalInformation; } r4 = r4 && a0.discriminator === '0'; return r4 ? conceal(value3) : value3; } } function useName(a0) { // fn#32810, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:690, offset: 0x0101ee0f, size: 153 bytes, params: 2, frame: 18 var r4; var value3; var value4; var username; const value2 = undefined; const hidePersonalInformation = (require(566) /* metro dependency 566: flux */).useStateFromStores([StreamerModeStore], function() { return StreamerModeStore.hidePersonalInformation; }); if (a0 != null) { value3 = nameFromUser(a0); if (hidePersonalInformation) { value4 = value3.toLocaleLowerCase(); username = a0.username; r4 = value4 === (username == null ? value2 : username.toLocaleLowerCase()); } else { r4 = hidePersonalInformation; } r4 = r4 && a0.discriminator === '0'; return r4 ? conceal(value3) : value3; } return value2; } function getGlobalName(a0) { // fn#32812, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:944, offset: 0x0101eeb7, size: 72 bytes, params: 2, frame: 13 var global_name; var r0; var presentBinding; if (a0 != null) { presentBinding = present; if (presentBinding(a0.globalName)) { r0 = a0.globalName; } else { presentBinding = present; global_name = a0.global_name; global_name = presentBinding(global_name) ? a0.global_name : undefined; r0 = global_name; } return r0; } } function getFormattedName(a0) { // fn#32813, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:1067, offset: 0x0101eeff, size: 127 bytes, params: 2, frame: 19 const value = a1; const r4 = value !== undefined ? value : false; if (a0 == null) { return env0_7; } const globalName = getGlobalName(a0); const r6 = r4 ? getUserTag(a0) : a0.username ?? env0_7; return globalName === r6 ? globalName : globalName == null ? r6 : '' + globalName + ' (' + r6 + ')'; } function humanizeStatus(a0) { // fn#32814, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:1232, offset: 0x0101ef7e, size: 545 bytes, params: 2, frame: 17 const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; var string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const value = a1; const r1 = value !== undefined ? value : {}; const isMobile = r1.isMobile; let r0 = isMobile !== undefined && isMobile; const isVR = r1.isVR; const r4 = isVR !== undefined && isVR; const ONLINE = StatusTypes.ONLINE; if (ONLINE === a0) { string = intl.string; r0 = r4 ? Reflect.apply(string, intl, [t.SWnU0R]) : r0 ? Reflect.apply(string, intl, [t['9hghLD']]) : Reflect.apply(string, intl, [t.WbGtnH]); return r0; } const OFFLINE = StatusTypes.OFFLINE; if (OFFLINE === a0) { return intl.string(t.Vv0abJ); } const IDLE = StatusTypes.IDLE; if (IDLE === a0) { return intl.string(t.qWbtVU); } const DND = StatusTypes.DND; if (DND === a0) { return intl.string(t.jaNpQH); } const INVISIBLE = StatusTypes.INVISIBLE; if (INVISIBLE === a0) { return intl.string(t.bg24HO); } const STREAMING = StatusTypes.STREAMING; if (STREAMING === a0) { return intl.string(t.XKYej5); } StatusTypes.UNKNOWN; return null; } function accountAgeInRange(a0, {maxDaysOld, minDaysOld}) { // fn#32815, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:1807, offset: 0x0101f19f, size: 115 bytes, params: 3, frame: 13 minDaysOld = minDaysOld === undefined ? 0 : minDaysOld; if (a0 == null) { return false; } const Date = global.Date; let value = Date.now(); const createdAt = a0.createdAt; const getTime = createdAt.getTime; value -= Reflect.apply(getTime, createdAt, []); return (maxDaysOld == null || value <= env0_6 * maxDaysOld) && value >= env0_6 * minDaysOld; } function presentUserTag(a0, a1, a2) { // fn#32816, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:1958, offset: 0x0101f212, size: 311 bytes, params: 4, frame: 18 var r0; var r6; var discriminator; var intl; let value = a2; if (a0 == null) { value = environment; intl = (require(1244) /* metro dependency 1244: indexNative */).intl; return intl.string((require(1244) /* metro dependency 1244: indexNative */).t.sKdZ6U); } const presentBinding = present; const username = a0.username; if (presentBinding(username)) { r0 = !(a1.identifiable === 'always') && (!(a1.identifiable !== 'never') || value); discriminator = a0.discriminator; if (discriminator === '0') { r6 = r0 ? conceal(a0.username) : a0.username; return a1.decoration === 'never' ? r6 : '@' + r6; } discriminator = a0.discriminator; if (discriminator !== NON_USER_BOT_DISCRIMINATOR) { r0 = a1.mode === 'username' || r0 ? a0.username : '' + a0.username + '#' + a0.discriminator; return r0; } r6 = r0 ? conceal(a0.username) : a0.username; return a1.decoration === 'never' ? r6 : '@' + r6; } return env0_7; } function getUserTag(a0, a1) { // fn#32817, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:2380, offset: 0x0101f349, size: 71 bytes, params: 3, frame: 15 const object2 = {}; copyDataProperties(object2, env0_8, undefined); copyDataProperties(object2, a1, undefined); return presentUserTag(a0, object2, object2.identifiable !== 'auto' || StreamerModeStore.hidePersonalInformation); } function useUserTag(a0, a1) { // fn#32818, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:2501, offset: 0x0101f390, size: 94 bytes, params: 3, frame: 17 const presentUserTagBinding = presentUserTag; const object2 = {}; copyDataProperties(object2, env0_8, undefined); copyDataProperties(object2, a1, undefined); const hidePersonalInformation = (require(566) /* metro dependency 566: flux */).useStateFromStores([StreamerModeStore], function() { return StreamerModeStore.hidePersonalInformation; }); return presentUserTagBinding(a0, object2, hidePersonalInformation); } function useDirectMessageRecipient(a0) { // fn#32820, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:2627, offset: 0x0101f3ee, size: 64 bytes, params: 2, frame: 14 const env0_0 = a0; return (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], _fun32821); } function getUserIsStaff() { // fn#32822, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:2789, offset: 0x0101f487, size: 37 bytes, params: 1, frame: 10 var r0; var isStaff; const value2 = UserStore.getCurrentUser() != null; if (value2) { isStaff = isStaff.isStaff(); r0 = isStaff; } else { r0 = value2; } return r0; } function _fun32821() { // fn#32821, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4153:2704, offset: 0x0101f42e, size: 89 bytes, params: 1, frame: 13 var binding; const value2 = null; if (value2 != env0_0) { binding = env0_0; return binding.isPrivate() && env0_0.isDM() ? UserStore.getUser(env0_0.getRecipientId()) : value2; } }