Files
discord-decomp/sources/modules/user_settings/UserSettingsProtoStore.tsx
T
2026-07-28 01:06:53 +03:00

412 lines
23 KiB
TypeScript

/* Metro module 1348; source: modules/user_settings/UserSettingsProtoStore.tsx; dependencies: [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 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 Module00022 from '../../by-id/module-00022.js'; /* Metro dependency 22 */
import Module00044 from '../../by-id/module-00044.js'; /* Metro dependency 44 */
import Flux from '../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import UserSettingsMigrationsByType from './UserSettingsMigrationsByType.tsx'; /* Metro dependency 1351 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as UserSettingsConstantsModule from './UserSettingsConstants.tsx'; /* Metro dependency 670 */
import * as Preloaded_user_settingsModule from '../../external/discord_common/js/packages/protos/discord_protos/discord_users/v1/preloaded_user_settings.tsx'; /* Metro dependency 1314 */
import * as Frecency_user_settingsModule from '../../external/discord_common/js/packages/protos/discord_protos/discord_users/v1/frecency_user_settings.tsx'; /* Metro dependency 1349 */
import * as UserSettingsUtilsModule from './UserSettingsUtils.tsx'; /* Metro dependency 1350 */
function _fun15372(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#15372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6, offset: 0x00e2f06b, size: 590 bytes, params: 8, frame: 26
const env0_0 = require;
const closure = function() {
clearInFlightTimeouts();
};
const resetEditInfo_ = function(a0) {
if (a0.editInfo.timeout != null) {
global.clearTimeout(a0.editInfo.timeout);
}
a0.editInfo = createEmptyEditInfo();
};
const USER_SETTINGS_PROTO_UPDATE_153802 = USER_SETTINGS_PROTO_UPDATE_15380;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = UserSettingsConstantsModule;
const UserSettingsTypes = value.UserSettingsTypes;
const createEmptyEditInfo = value.createEmptyEditInfo;
object = {};
const PreloadedUserSettings = (Preloaded_user_settingsModule).PreloadedUserSettings;
object.ProtoClass = PreloadedUserSettings;
object.proto = PreloadedUserSettings.create();
object.lazyLoaded = false;
object.editInfo = createEmptyEditInfo();
const object2 = {};
const FrecencyUserSettings = (Frecency_user_settingsModule).FrecencyUserSettings;
object2.ProtoClass = FrecencyUserSettings;
object2.proto = FrecencyUserSettings.create();
object2.lazyLoaded = true;
object2.editInfo = createEmptyEditInfo();
const object3 = {};
const PRELOADED_USER_SETTINGS = UserSettingsTypes.PRELOADED_USER_SETTINGS;
object3[PRELOADED_USER_SETTINGS] = object;
const FRECENCY_AND_FAVORITES_SETTINGS = UserSettingsTypes.FRECENCY_AND_FAVORITES_SETTINGS;
object3[FRECENCY_AND_FAVORITES_SETTINGS] = object2;
const PersistedStore = (Flux).PersistedStore;
value = _fun15383(PersistedStore);
value.displayName = 'UserSettingsProtoStore';
value.persistKey = 'UserSettingsProtoStore-Cache';
value = new value(importDefault(694) /* metro dependency 694: Dispatcher */,
{CACHE_LOADED: function({userSettings}) {
loadFromCache(userSettings);
}, USER_SETTINGS_PROTO_UPDATE: USER_SETTINGS_PROTO_UPDATE_153802,
USER_SETTINGS_PROTO_ENQUEUE_UPDATE: USER_SETTINGS_PROTO_UPDATE_153802,
USER_SETTINGS_PROTO_UPDATE_EDIT_INFO: USER_SETTINGS_PROTO_UPDATE_EDIT_INFO,
CONNECTION_OPEN: CONNECTION_OPEN_15405, CONNECTION_CLOSED: closure, CONNECTION_RESUMED: closure,
OVERLAY_INITIALIZE: OVERLAY_INITIALIZE_15407, LOGOUT: LOGOUT_15408});
(FileImportTrackerModule).fileFinishedImporting('modules/user_settings/UserSettingsProtoStore.tsx');
exports.default = value;
function _isNativeReflectConstruct_15373() { // fn#15373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:204, offset: 0x00e2f2b9, 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_15373_isNativeReflectConstruct = function() {
return !!result;
})();
}
function clearInFlightTimeouts() { // fn#15377, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:777, offset: 0x00e2f326, size: 46 bytes, params: 1, frame: 11
const Object = global.Object;
Object.values(env0_12).forEach(_fun15378);
}
function USER_SETTINGS_PROTO_ENQUEUE_UPDATE({settings, partial, resetEditInfo, local}) { // fn#15380, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1209, offset: 0x00e2f433, size: 262 bytes, params: 2, frame: 19
var editInfo;
var moduleValue;
let proto = settings.proto;
const type = settings.type;
var value;
result = !local;
const property = env0_12[type];
if (resetEditInfo) {
resetEditInfo_(property);
}
if (partial) {
moduleValue = require(1350) /* metro dependency 1350: UserSettingsUtils */;
property.proto = moduleValue.mergeTopLevelFields(property.ProtoClass, property.proto, proto);
value = importDefault(44) /* metro dependency 44 */;
proto = property.proto;
value(typeof proto !== 'string', 'UserSettingsProto cannot be a string');
} else {
property.proto = proto;
value = importDefault(44) /* metro dependency 44 */;
proto = property.proto;
value(typeof proto !== 'string', 'UserSettingsProto cannot be a string');
editInfo = property.editInfo;
editInfo.loaded = true;
editInfo = property.editInfo;
editInfo.loading = false;
}
}
function loadFromCache(a0) { // fn#15381, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1613, offset: 0x00e2f539, size: 64 bytes, params: 2, frame: 14
var defaultImport;
const env0_0 = a0;
if (a0 != null) {
defaultImport = importDefault(22) /* metro dependency 22 */;
defaultImport.forEach(env0_12, _fun15382);
}
function _fun15382(a0, a1) { // fn#15382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1668, offset: 0x00e2f579, size: 285 bytes, params: 3, frame: 19
var proto;
var r9;
var protoToSave;
var r7;
var value4;
var moduleValue;
var value5;
var moduleValue2;
var value6;
var editInfo;
const binding = env0_0;
const Number = global.Number;
const value = undefined;
const property = binding[Number(a1)];
const value2 = null;
if (value2 != property) {
proto = value2 == property ? value : property.proto;
r9 = value2 != proto ? proto : '';
value4 = environment.__proto__;
moduleValue = require(1350) /* metro dependency 1350: UserSettingsUtils */;
value5 = moduleValue.b64ToProto(a0.ProtoClass, r9);
if (value2 != value5) {
a0.proto = value5;
(importDefault(44) /* metro dependency 44 */)(typeof a0.proto !== 'string',
'UserSettingsProto cannot be a string');
protoToSave = value2 == property ? value : property.protoToSave;
r7 = value2 != protoToSave ? protoToSave : value2;
if (value2 != r7) {
if (value2 != property.offlineEditDataVersion) {
moduleValue2 = require(1350) /* metro dependency 1350: UserSettingsUtils */;
value6 = moduleValue2.b64ToProto(a0.ProtoClass, r7);
if (value2 != value6) {
editInfo = a0.editInfo;
editInfo.protoToSave = value6;
editInfo = a0.editInfo;
editInfo.offlineEditDataVersion = property.offlineEditDataVersion;
}
}
}
}
}
return value;
}
}
function _fun15383(a0) { // fn#15383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2131, offset: 0x00e2f696, size: 419 bytes, params: 2, frame: 16
const UserSettingsProtoStore2 = UserSettingsProtoStore;
Inherits(UserSettingsProtoStore2, a0);
return CreateClass(UserSettingsProtoStore2, [{key: 'initialize', value: function(a0) {
loadFromCache(a0);
}}, {key: 'getState', value: function() {
}}, {key: 'computeState', value: value_15387}, {key: 'hasLoaded', value: value_15389}, {key: 'settings',
get: get_15390}, {key: 'frecencyWithoutFetchingLatest', get: get_15391}, {key: 'wasMostRecentUpdateFromServer',
get: get_15392}, {key: 'getFullState', value: value_15393}, {key: 'getGuildFolders', value: value_15394},
{key: 'getGuildRecentsDismissedAt', value: value_15396}, {key: 'getDismissedGuildContent', value: function(a0) {
var value = null;
return value == a0 ? value : value == this.settings.guilds || value == this.settings.guilds.guilds || value == this.settings.guilds.guilds[a0] ? undefined : this.settings.guilds.guilds[a0].dismissedGuildContent;
}}, {key: 'getGuildDismissedContentState', value: function(a0) {
var property = this.settings.guilds;
return property == null || property.guilds == null || property.guilds[a0] == null ? undefined : property.guilds[a0].guildDismissibleContentStates;
}}, {key: 'getGuildsProto', value: function() {
var r1;
var guilds = this.settings.guilds;
var value = null;
r1 = value == guilds ? undefined : guilds.guilds;
return value != r1 ? r1 : value;
}}, {key: 'getDefaultGuildThemePreference', value: function() {
var r0;
r0 = this.settings.appearance?.defaultGuildThemePreference;
r0 = r0 ?? require(dependencyMap[6]).GuildThemeSourcePreference.UNSPECIFIED;
return r0;
}}, {key: 'getGuildThemeSourcePreferenceOverride', value: value_15401}, {key: 'resolveGuildThemeSourcePreference',
value: value_15402}]);
function UserSettingsProtoStore() { // fn#15384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2143, offset: 0x00e2f839, size: 113 bytes, params: 1, frame: 20
const value = environment.__proto__;
env1_3(this, UserSettingsProtoStore);
const value3 = env1_6(UserSettingsProtoStore);
return env1_5(this, _isNativeReflectConstruct_15373() ? global.Reflect.construct(value3, arguments,
env1_6(this).constructor) : value3.apply(this, arguments));
}
function value_15387() { // fn#15387, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2564, offset: 0x00e2f8bd, size: 50 bytes, params: 1, frame: 13
const defaultImport = Module00022;
return defaultImport.mapValues(env1_12, _fun15388);
function _fun15388(a0) { // fn#15388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2604, offset: 0x00e2f8ef, size: 172 bytes, params: 2, frame: 18
const object = {};
let value = environment.__proto__.__proto__;
let protoToB64 = UserSettingsUtilsModule.protoToB64;
let ProtoClass = a0.ProtoClass;
object.proto = Reflect.apply(protoToB64, UserSettingsUtilsModule, [ProtoClass, a0.proto]);
let editInfo = a0.editInfo;
if (editInfo.offlineEditDataVersion != null && a0.editInfo.protoToSave != null) {
value = UserSettingsUtilsModule;
protoToB64 = value.protoToB64;
ProtoClass = a0.ProtoClass;
editInfo = a0.editInfo;
object.protoToSave = Reflect.apply(protoToB64, value, [ProtoClass, editInfo.protoToSave]);
editInfo = a0.editInfo;
object.offlineEditDataVersion = editInfo.offlineEditDataVersion;
}
return object;
}
}
function value_15389(a0) { // fn#15389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2902, offset: 0x00e2f99b, size: 28 bytes, params: 2, frame: 2
return env1_12[a0].editInfo.loaded;
}
function get_15390() { // fn#15390, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2964, offset: 0x00e2f9b7, size: 15 bytes, params: 1, frame: 1
return env1_10.proto;
}
function get_15391() { // fn#15391, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3033, offset: 0x00e2f9c6, size: 15 bytes, params: 1, frame: 1
return env1_11.proto;
}
function get_15392() { // fn#15392, offset: 0x00e2f9d5, size: 9 bytes, params: 1, frame: 1
return env1_13;
}
function value_15393() { // fn#15393, offset: 0x00e2f9de, size: 9 bytes, params: 1, frame: 1
return env1_12;
}
function value_15394() { // fn#15394, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3201, offset: 0x00e2f9e7, size: 64 bytes, params: 1, frame: 12
var environment;
let value = environment.__proto__;
const guildFolders = env1_10.proto.guildFolders;
value = null;
const folders = value == guildFolders ? undefined : guildFolders.folders;
return value == folders ? value : folders.map(_fun15395);
}
function value_15396(a0) { // fn#15396, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3563, offset: 0x00e2fab1, size: 125 bytes, params: 2, frame: 14
var r0;
var value3;
if (a0 == null) {
return 0;
}
const guilds = this.settings.guilds;
let value = undefined;
const guildRecentsDismissedAt = guilds == null || guilds.guilds[a0] == null ? value : guilds.guilds[a0].guildRecentsDismissedAt;
if (guildRecentsDismissedAt == null) {
r0 = 0;
} else {
value3 = environment.__proto__;
value = (require(1344) /* metro dependency 1344: timestamp */).Timestamp.toDate(guildRecentsDismissedAt);
value = value.getTime();
r0 = value;
}
return r0;
}
function value_15401(a0) { // fn#15401, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:4478, offset: 0x00e2fc35, size: 149 bytes, params: 2, frame: 14
const GuildThemeSourcePreference = (Preloaded_user_settingsModule).GuildThemeSourcePreference;
return a0 == null ? GuildThemeSourcePreference.UNSPECIFIED : (this.settings.guilds == null || this.settings.guilds.guilds == null ? undefined : this.settings.guilds.guilds[a0]?.guildThemeSourcePreference) ?? GuildThemeSourcePreference.UNSPECIFIED;
}
function value_15402(a0) { // fn#15402, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:4771, offset: 0x00e2fcca, size: 68 bytes, params: 2, frame: 14
let value = environment.__proto__;
value = require(1352) /* metro dependency 1352: GuildThemeSourcePreferenceUtils */;
const resolveGuildThemeSourcePreference = value.resolveGuildThemeSourcePreference;
const guildThemeSourcePreferenceOverride = this.getGuildThemeSourcePreferenceOverride(a0);
const getDefaultGuildThemePreference = this.getDefaultGuildThemePreference;
return Reflect.apply(resolveGuildThemeSourcePreference, value, [guildThemeSourcePreferenceOverride,
Reflect.apply(getDefaultGuildThemePreference, this, [])]);
}
}
function USER_SETTINGS_PROTO_UPDATE_EDIT_INFO({settings}) { // fn#15404, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:5288, offset: 0x00e2fd27, size: 102 bytes, params: 2, frame: 16
const type = settings.type;
const changes = settings.changes;
(Module00044)(true, 'this cannot run in the overlay');
const property = env0_12[type];
property.editInfo = {...property.editInfo, ...changes};
return false;
}
function CONNECTION_OPEN_15405({userSettingsProto}) { // fn#15405, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:5482, offset: 0x00e2fd8d, size: 336 bytes, params: 2, frame: 17
var binding;
if (userSettingsProto != null) {
binding = env0_10;
binding.proto = userSettingsProto;
(importDefault(44) /* metro dependency 44 */)(typeof binding.proto !== 'string',
'UserSettingsProto cannot be a string');
}
const runMigrations = UserSettingsUtilsModule.runMigrations;
protoBinding = env0_10.proto;
const defaultImport = UserSettingsMigrationsByType;
const PRELOADED_USER_SETTINGS = UserSettingsTypes.PRELOADED_USER_SETTINGS;
var {proto, isDirty, cleanupFuncs} = Reflect.apply(runMigrations, UserSettingsUtilsModule, [protoBinding,
defaultImport[PRELOADED_USER_SETTINGS]]);
if (isDirty) {
resetEditInfo_(env0_10);
}
binding = env0_10;
binding.proto = protoBinding;
(importDefault(44) /* metro dependency 44 */)(typeof binding.proto !== 'string',
'UserSettingsProto cannot be a string');
binding.editInfo.triggeredMigrations = isDirty;
binding.editInfo.cleanupFuncs = cleanupFuncs;
binding.editInfo.loaded = true;
const Object = global.Object;
Object.values(env0_12).forEach(function(a0) {
if (a0.lazyLoaded) {
a0.editInfo.loaded = false;
a0.editInfo.loading = false;
}
});
clearInFlightTimeouts();
}
function OVERLAY_INITIALIZE_15407({userSettingsProto}) { // fn#15407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6162, offset: 0x00e2ff07, size: 102 bytes, params: 2, frame: 16
const binding = env0_10;
binding.proto = (require(1350) /* metro dependency 1350: UserSettingsUtils */).b64ToPreloadedUserSettingsProto(userSettingsProto);
(Module00044)(typeof binding.proto !== 'string',
'UserSettingsProto cannot be a string');
}
function LOGOUT_15408() { // fn#15408, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6350, offset: 0x00e2ff6d, size: 54 bytes, params: 1, frame: 12
clearInFlightTimeouts();
const Object = global.Object;
Object.values(env0_12).forEach(function(a0) {
var ProtoClass = a0.ProtoClass;
a0.proto = ProtoClass.create();
a0.editInfo = createEmptyEditInfo();
});
}
}
function _fun15378(a0) { // fn#15378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:836, offset: 0x00e2f354, size: 154 bytes, params: 2, frame: 14
var dataVersion;
var clearTimeout;
var value;
var versions;
let editInfo = a0.editInfo;
let timeout = editInfo.timeout;
if (timeout != null) {
clearTimeout = global.clearTimeout;
editInfo = a0.editInfo;
timeout = editInfo.timeout;
value = undefined;
clearTimeout(timeout);
editInfo = a0.editInfo;
editInfo.timeout = value;
editInfo = a0.editInfo;
editInfo.timeoutDelay = global.Number.MAX_SAFE_INTEGER;
editInfo = a0.editInfo;
editInfo.rateLimited = false;
editInfo = a0.editInfo;
versions = a0.proto.versions;
dataVersion = versions == null ? value : versions.dataVersion;
value = 0;
editInfo.offlineEditDataVersion = dataVersion ?? value;
}
}
function _fun15395({id, color, guildIds, name}) { // fn#15395, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3295, offset: 0x00e2fa27, size: 138 bytes, params: 2, frame: 16
const value = undefined;
const r7 = id == null ? value : id.value;
const r3 = color == null ? value : color.value;
const object = {};
object.guildIds = guildIds;
object.folderId = r7 == null ? value : global.Number(r7);
object.folderName = name == null ? value : name.value;
object.folderColor = r3 == null ? value : global.Number(r3);
return object;
}
global.__d(_fun15372, 1348, [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 566, 694,
2]) /* metro module 1348, dependencies: [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 566, 694, 2] */;