/* Metro module 3964; source: modules/client_themes/ClientThemesBackgroundStore.tsx; dependencies: [6, 7, 15, 17, 18, 1311, 1310, 1312, 1348, 1383, 1379, 1878, 3965, 1313, 3968, 1365, 3995, 3802, 3829, 3998, 3999, 566, 694, 2] */ import ClassCallCheck from '../../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from '../../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */ import PossibleConstructorReturn from '../../by-id/module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */ import Module00017 from '../../by-id/module-00017.js'; /* Metro dependency 17 */ import Inherits from '../../by-id/module-00018-Inherits.js'; /* Metro dependency 18 */ import Flux from '../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */ import ThemeStore from '../user_settings/ThemeStore.tsx'; /* Metro dependency 1310 */ import SelectivelySyncedUserSettingsStore from '../user_settings/SelectivelySyncedUserSettingsStore.tsx'; /* Metro dependency 1311 */ import UnsyncedUserSettingsStore from '../user_settings/UnsyncedUserSettingsStore.tsx'; /* Metro dependency 1312 */ import UserSettingsProtoStore from '../user_settings/UserSettingsProtoStore.tsx'; /* Metro dependency 1348 */ import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */ import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import PremiumUtils from '../../utils/PremiumUtils.tsx'; /* Metro dependency 3802 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ThemeConstantsModule from '../user_settings/ThemeConstants.tsx'; /* Metro dependency 1313 */ import * as ChannelRecordModule from '../../records/ChannelRecord.tsx'; /* Metro dependency 1383 */ import * as ClientThemesConstantsModule from './ClientThemesConstants.tsx'; /* Metro dependency 3965 */ function _fun32448(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#32448, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:6, offset: 0x0101608a, size: 553 bytes, params: 8, frame: 21 const env0_0 = require; const CLIENT_THEMES_EDITOR_CLOSE2 = CLIENT_THEMES_EDITOR_CLOSE; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const CACHE_LOADED_324552 = CACHE_LOADED_32455; const PersistedStore = (Flux).PersistedStore; let value = _fun32456(PersistedStore); value.displayName = 'ClientThemesBackgroundStore'; value.persistKey = 'ClientThemesBackgroundStore'; value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {UPDATE_BACKGROUND_GRADIENT_PRESET: function({presetId}) { var value = undefined; env0_17 = presetId != null ? BACKGROUND_GRADIENT_PRESETS_MAP[presetId] : value; return value; }, UPDATE_MOBILE_PENDING_THEME_INDEX: function({mobileThemesIndex}) { var value = undefined; env0_18 = mobileThemesIndex ?? value; return value; }, RESET_PREVIEW_CLIENT_THEME: function() { env0_17 = undefined; }, CLIENT_THEMES_EDITOR_CLOSE: CLIENT_THEMES_EDITOR_CLOSE2, CHANNEL_SELECT: CHANNEL_SELECT_32469, LOGOUT: CLIENT_THEMES_EDITOR_CLOSE2, CACHE_LOADED: CACHE_LOADED_324552, CONNECTION_OPEN: CACHE_LOADED_324552, OVERLAY_INITIALIZE: CACHE_LOADED_324552, SELECTIVELY_SYNCED_USER_SETTINGS_UPDATE: CACHE_LOADED_324552, UNSYNCED_USER_SETTINGS_UPDATE: CACHE_LOADED_324552, USER_SETTINGS_PROTO_UPDATE: CACHE_LOADED_324552}); (FileImportTrackerModule).fileFinishedImporting('modules/client_themes/ClientThemesBackgroundStore.tsx'); exports.default = value; function _isNativeReflectConstruct_32449() { // fn#32449, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:314, offset: 0x010162b3, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_32449_isNativeReflectConstruct = function() { return !!result; })(); } function CLIENT_THEMES_EDITOR_CLOSE() { // fn#32452, offset: 0x01016311, size: 26 bytes, params: 1, frame: 2 if (env0_19) { } } function handleUserStoreChange() { // fn#32453, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:587, offset: 0x0101632b, size: 70 bytes, params: 1, frame: 14 const defaultImport = PremiumUtils; const canUseClientThemes = defaultImport.canUseClientThemes; const userStoreBinding = UserStore; const getCurrentUser = userStoreBinding.getCurrentUser; if (!Reflect.apply(canUseClientThemes, defaultImport, [Reflect.apply(getCurrentUser, userStoreBinding, [])]) === env0_19) { return false; } } function handleSelectivelySyncedStoreChange() { // fn#32454, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:705, offset: 0x01016371, size: 123 bytes, params: 1, frame: 13 var ClientThemeSettings; var backgroundGradientPresetId; const selectivelySyncedUserSettingsStoreBinding = SelectivelySyncedUserSettingsStore; if (selectivelySyncedUserSettingsStoreBinding.shouldSync('appearance')) { ClientThemeSettings = (require(3829) /* metro dependency 3829: UserSettings */).ClientThemeSettings; backgroundGradientPresetId = ClientThemeSettings.getSetting().backgroundGradientPresetId; if (backgroundGradientPresetId == null) { if (env0_17 == null) { return false; } env0_17 = undefined; return undefined; } if (BACKGROUND_GRADIENT_PRESETS_MAP[backgroundGradientPresetId] === env0_17) { return false; } return undefined; } return false; } function CACHE_LOADED_32455() { // fn#32455, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:941, offset: 0x010163ec, size: 233 bytes, params: 1, frame: 15 var value2; var ClientThemeSettings; var backgroundGradientPresetId; var moduleValue; var property; var binding; const selectivelySyncedUserSettingsStoreBinding = SelectivelySyncedUserSettingsStore; if (selectivelySyncedUserSettingsStoreBinding.shouldSync('appearance')) { value2 = undefined; ClientThemeSettings = (require(3829) /* metro dependency 3829: UserSettings */).ClientThemeSettings; backgroundGradientPresetId = ClientThemeSettings.getSetting().backgroundGradientPresetId; if (UnsyncedUserSettingsStore.useSystemTheme === SystemThemeState.ON && backgroundGradientPresetId != null) { moduleValue = require(3998) /* metro dependency 3998: ThemeActionCreators */; moduleValue.setUseSystemTheme(SystemThemeState.OFF); } if (backgroundGradientPresetId != null) { property = BACKGROUND_GRADIENT_PRESETS_MAP[backgroundGradientPresetId]; binding = env0_17; if (property == null || (binding == null ? value2 : binding.id) === (property == null ? value2 : property.id)) { } } else if (env0_17 == null) { } return value2; } return false; } function _fun32456(a0) { // fn#32456, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:1256, offset: 0x010164d5, size: 212 bytes, params: 2, frame: 16 const ClientThemesBackgroundStore2 = ClientThemesBackgroundStore; Inherits(ClientThemesBackgroundStore2, a0); return CreateClass(ClientThemesBackgroundStore2, [{key: 'initialize', value: value_32459}, {key: 'getState', value: value_32460}, {key: 'gradientPreset', get: get_32461}, {key: 'getLinearGradient', value: value_32462}, {key: 'isPreview', get: get_32463}, {key: 'isCoachmark', get: get_32464}, {key: 'mobilePendingThemeIndex', get: get_32465}]); function ClientThemesBackgroundStore(a0) { // fn#32457, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:1268, offset: 0x010165a9, size: 147 bytes, params: 2, frame: 19 var r0; var Reflect; let value = copyRestArgs(0, undefined); let binding = env1_3; binding(this, ClientThemesBackgroundStore); const items2 = []; arraySpread(items2, value, 0, items2); value = env1_6(ClientThemesBackgroundStore); binding = env1_5; if (_isNativeReflectConstruct_32449()) { Reflect = global.Reflect; value = Reflect.construct(value, items2, env1_6(this).constructor); r0 = value; } else { value = value.apply(this, items2); r0 = value; } value = binding(this, r0); value.migrations = [function(a0) { return {gradientPresetId: a0 == null || a0.gradientPreset == null ? undefined : a0.gradientPreset.id}; }]; return value; } function value_32459(a0) { // fn#32459, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:1731, offset: 0x01016667, size: 158 bytes, params: 2, frame: 22 var r1; var value; if (a0 != null) { value = undefined; r1 = (a0 == null ? value : a0.gradientPresetId) != null ? BACKGROUND_GRADIENT_PRESETS_MAP[a0.gradientPresetId] : value; value = environment.__proto__; } const waitFor = this.waitFor; value = environment.__proto__; const channelStoreBinding = ChannelStore; const selectivelySyncedUserSettingsStoreBinding = SelectivelySyncedUserSettingsStore; const themeStoreBinding = ThemeStore; const unsyncedUserSettingsStoreBinding = UnsyncedUserSettingsStore; const userSettingsProtoStoreBinding = UserSettingsProtoStore; const userStoreBinding = UserStore; Reflect.apply(waitFor, this, [channelStoreBinding, selectivelySyncedUserSettingsStoreBinding, themeStoreBinding, unsyncedUserSettingsStoreBinding, userSettingsProtoStoreBinding, userStoreBinding]); this.syncWith([userStoreBinding], handleUserStoreChange); this.syncWith([selectivelySyncedUserSettingsStoreBinding], handleSelectivelySyncedStoreChange); } function value_32460() { // fn#32460, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:1972, offset: 0x01016705, size: 43 bytes, params: 1, frame: 4 const value = environment.__proto__; return env1_19 ? {} : {gradientPresetId: env1_17?.id}; } function get_32461() { // fn#32461, offset: 0x00e07553, size: 9 bytes, params: 1, frame: 1 return env1_17; } function value_32462() { // fn#32462, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:2125, offset: 0x01016730, size: 62 bytes, params: 1, frame: 13 var r0; const gradientPreset = this.gradientPreset; let value = null; if (value == gradientPreset) { r0 = value; } else { value = environment.__proto__; value = require(3999) /* metro dependency 3999: ClientThemesUtils */; value = value.getLinearGradientForBackgroundGradient(this.gradientPreset); r0 = value; } return r0; } function get_32463() { // fn#32463, offset: 0x00d406a2, size: 9 bytes, params: 1, frame: 1 return env1_19; } function get_32464() { // fn#32464, offset: 0x00e4253a, size: 9 bytes, params: 1, frame: 1 return env1_20; } function get_32465() { // fn#32465, offset: 0x00df0e82, size: 9 bytes, params: 1, frame: 1 return env1_18; } } function CHANNEL_SELECT_32469({channelId, guildId}) { // fn#32469, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4113:2771, offset: 0x010167c5, size: 187 bytes, params: 2, frame: 18 var moduleValue; var moduleValue2; var channel; if (channelId != null) { if (guildId != null) { moduleValue = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */; if (!moduleValue.UNSAFE_isDismissibleContentDismissed((require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.CLIENT_THEMES_COACHMARK)) { moduleValue2 = require(3995) /* metro dependency 3995: UserUtils */; if (moduleValue2.ageEligibleForPremiumUpsell(UserStore.getCurrentUser())) { channel = ChannelStore.getChannel(channelId); if (channel != null && isGuildTextChannelType(channel.type)) { } } } } } } } global.__d(_fun32448, 3964, [6, 7, 15, 17, 18, 1311, 1310, 1312, 1348, 1383, 1379, 1878, 3965, 1313, 3968, 1365, 3995, 3802, 3829, 3998, 3999, 566, 694, 2]) /* metro module 3964, dependencies: [6, 7, 15, 17, 18, 1311, 1310, 1312, 1348, 1383, 1379, 1878, 3965, 1313, 3968, 1365, 3995, 3802, 3829, 3998, 3999, 566, 694, 2] */;