Files
discord-decomp/sources/modules/guild_onboarding/GuildOnboardingActionCreators.tsx
T
2026-07-27 16:20:00 +03:00

362 lines
19 KiB
TypeScript

/* Metro module 6606; source: modules/guild_onboarding/GuildOnboardingActionCreators.tsx; dependencies: [5, 57, 1937, 1379, 1945, 1878, 6603, 661, 3772, 4865, 507, 694, 1216, 6607, 22, 5105, 1360, 6608, 683, 4863, 5097, 21, 1391, 6609, 6614, 2] */
function _fun52099(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#52099, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:6, offset: 0x0131ed02, size: 413 bytes, params: 8, frame: 20
var object2;
const env0_0 = require;
const closure = _updateOnboardingResponses;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
const env0_4 = importDefault(57) /* metro dependency 57 */;
const impersonateStore = importDefault(1937) /* metro dependency 1937: ImpersonateStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const guildOnboardingPromptsStore = importDefault(6603) /* metro dependency 6603: GuildOnboardingPromptsStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_10 = constantsModule.AnalyticEvents;
const env0_11 = constantsModule.AnalyticsPages;
const env0_12 = constantsModule.Endpoints;
const env0_13 = (require(3772) /* metro dependency 3772: GuildMemberConstants */).GuildMemberFlags;
const env0_14 = (require(4865) /* metro dependency 4865: ReadStateConstants */).ReadStateTypes;
object2 = {selectOption: selectOption};
object2.updateOnboardingResponses = (importDefault(22) /* metro dependency 22 */).debounce(closure, 1000);
object2.updateRolesLocal = updateRolesLocal;
object2.completeOnboarding = completeOnboarding;
object2.onboardExistingMember = onboardExistingMember;
object2.finishOnboarding = finishOnboarding;
object2.setUserOnboardingStep = setUserOnboardingStep;
object2.resetOnboarding = resetOnboarding;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/guild_onboarding/GuildOnboardingActionCreators.tsx');
exports.default = object2;
}
function _updateOnboardingResponses(a0) { // fn#52100, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:282, offset: 0x0131ee9f, size: 402 bytes, params: 2, frame: 21
var put;
var object7;
var object8;
var post;
var object9;
var object10;
let value = a1;
const env0_0 = a0;
let r1 = value !== undefined ? value : false;
if (ImpersonateStore.isFullServerPreview(a0)) {
return undefined;
}
const r5 = r1 ? GuildOnboardingPromptsStore.getOnboardingPromptsForOnboarding(a0) : GuildOnboardingPromptsStore.getOnboardingPrompts(a0);
const env0_1 = GuildOnboardingPromptsStore.getOnboardingResponses(a0);
const value5 = r5.map(function({options}) {
return options.filter(_fun52102);
}).flat();
const object11 = {};
const object12 = {};
r5.forEach(_fun52103);
const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP;
if (r1) {
post = HTTP.post;
object9 = {};
object9.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0);
object10 = {};
object10.onboarding_responses = value5.map(function(a0) {
return a0.id;
});
object10.onboarding_prompts_seen = object11;
object10.onboarding_responses_seen = object12;
object9.body = object10;
object9.rejectWithError = true;
value = Reflect.apply(post, HTTP, [object9]);
value = value.then(_fun52106);
value = value.catch(_fun52107);
r1 = value;
} else {
put = HTTP.put;
object7 = {};
object7.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0);
object8 = {};
object8.onboarding_responses = value5.map(_fun52108);
object8.onboarding_prompts_seen = object11;
object8.onboarding_responses_seen = object12;
object7.body = object8;
object7.rejectWithError = false;
value = Reflect.apply(put, HTTP, [object7]);
value = value.then(_fun52109);
value = value.catch(_fun52110);
r1 = value;
}
return r1;
}
function selectOption(a0, a1, a2, a3) { // fn#52111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1619, offset: 0x0131f1e9, size: 187 bytes, params: 5, frame: 20
var r3;
var defaultImport;
var without;
var defaultImport2;
var value;
const onboardingPrompt = GuildOnboardingPromptsStore.getOnboardingPrompt(a1);
if (onboardingPrompt != null) {
if (onboardingPrompt.singleSelect) {
defaultImport = importDefault(22) /* metro dependency 22 */;
without = defaultImport.without;
defaultImport2 = importDefault(22) /* metro dependency 22 */;
r3 = Reflect.apply(without, defaultImport, [defaultImport2.map(onboardingPrompt.options, 'id'), a2]);
} else {
r3 = [];
}
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.dispatch({type: 'GUILD_ONBOARDING_SELECT_OPTION', guildId: a0, promptId: a1, optionId: a2, selected: a3,
removedOptionIds: r3});
}
}
function updateRolesLocal(a0, a1, a2) { // fn#52112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1973, offset: 0x0131f2a4, size: 293 bytes, params: 4, frame: 23
var dispatch;
var defaultImport;
var difference;
var defaultImport2;
var moduleValue;
var updateImpersonatedRoles;
var defaultImport3;
var value;
const selfMember = GuildMemberStore.getSelfMember(a0);
const value3 = undefined;
const r9 = (selfMember == null ? value3 : selfMember.roles) ?? [];
if (ImpersonateStore.isViewingRoles(a0)) {
moduleValue = require(6607) /* metro dependency 6607: ImpersonateActionCreators */;
updateImpersonatedRoles = moduleValue.updateImpersonatedRoles;
value = importDefault(22) /* metro dependency 22 */;
difference = value.difference;
defaultImport3 = importDefault(22) /* metro dependency 22 */;
Reflect.apply(updateImpersonatedRoles, moduleValue, [a0, Reflect.apply(difference, value,
[defaultImport3.union(r9,
a1), a2])]);
} else if (a1.length > 0 || a2.length > 0) {
value = importDefault(694) /* metro dependency 694: Dispatcher */;
dispatch = value.dispatch;
defaultImport = importDefault(22) /* metro dependency 22 */;
difference = defaultImport.difference;
defaultImport2 = importDefault(22) /* metro dependency 22 */;
Reflect.apply(dispatch, value, [{type: 'GUILD_MEMBER_UPDATE_LOCAL', guildId: a0,
roles: Reflect.apply(difference,
defaultImport, [defaultImport2.union(r9, a1), a2]), addedRoleIds: a1, removedRoleIds: a2}]);
}
return value3;
}
function completeOnboarding(a0, a1) { // fn#52113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:2346, offset: 0x0131f3c9, size: 1129 bytes, params: 3, frame: 38
var flags;
var updateImpersonatedData;
var moduleValue11;
var updateImpersonatedRoles;
var Array;
var currentUser;
var value22;
var moduleValue12;
const length = a1.length;
let value = 0;
const value2 = null;
const r20 = length > value ? a1[a1.length - 1] : value2;
const selectedOptions = GuildOnboardingPromptsStore.getSelectedOptions(a0);
const value5 = undefined;
const selectedRoleIds = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getSelectedRoleIds(selectedOptions);
const selectedChannelIds = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getSelectedChannelIds(selectedOptions);
const getEnabled = GuildOnboardingPromptsStore.getEnabled;
let r9 = Reflect.apply(getEnabled, GuildOnboardingPromptsStore,
[a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : [];
const value10 = env0_4((require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getChannelCoverageForOnboarding(a0,
a1, r9), 2);
const property = value10[value];
const property2 = value10[1];
const items = [];
arraySpread(items, r9, arraySpread(items, selectedChannelIds, value, undefined), undefined);
const value11 = items.map(function(a0) {
return ChannelStore.getChannel(a0);
});
const value12 = value11.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish);
const useFlattenedChannelsModule = require(6608) /* metro dependency 6608: useFlattenedChannels */;
const getFlattenedChannels = useFlattenedChannelsModule.getFlattenedChannels;
const Set = global.Set;
const value13 = Object.create(Set.prototype, {constructor: {value: Set}});
const set = new Set();
const length2 = Reflect.apply(getFlattenedChannels, useFlattenedChannelsModule, [a0,
set instanceof Object ? set : value13, value12, true]).length;
const r16 = value2 == r20 ? [] : r20.options.map(function(a0) {
return a0.id;
});
const connections = GuildOnboardingPromptsStore.getConnections(a0);
const providerConnectionState = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getProviderConnectionState(connections);
const applicationConnectionState = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getApplicationConnectionState(connections);
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const GUILD_ONBOARDING_STEP_COMPLETED = AnalyticEvents.GUILD_ONBOARDING_STEP_COMPLETED;
const object3 = {};
const appAnalyticsUtilsModule = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object3, appAnalyticsUtilsModule.collectGuildAnalyticsMetadata(a0), value12);
object3['step'] = a1.length - 1;
object3['options_selected'] = value2 == r20 ? value : selectedOptions.filter(_fun52116).length;
object3['skipped'] = r16.length > value;
object3['back'] = false;
object3['in_onboarding'] = true;
object3['is_final_step'] = true;
object3['roles_granted'] = selectedRoleIds.size;
object3['channels_granted'] = length2;
object3['guild_onboarding_covered_channel_ids'] = property.map(function(a0) {
return a0.id;
});
object3['guild_onboarding_uncovered_channel_ids'] = property2.map(function(a0) {
return a0.id;
});
object3['provider_connections_connected'] = providerConnectionState.connected;
object3['provider_connections_not_connected'] = providerConnectionState.notConnected;
object3['application_connections_connected'] = applicationConnectionState.connected;
object3['application_connections_not_connected'] = applicationConnectionState.notConnected;
Reflect.apply(track, defaultImport, [GUILD_ONBOARDING_STEP_COMPLETED, object3]);
const readStateActionCreatorsModule = require(5097) /* metro dependency 5097: ReadStateActionCreators */;
const ackGuildFeature = readStateActionCreatorsModule.ackGuildFeature;
const GUILD_ONBOARDING_QUESTION = ReadStateTypes.GUILD_ONBOARDING_QUESTION;
const defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
const fromTimestamp = defaultImport2.fromTimestamp;
const Date = global.Date;
Reflect.apply(ackGuildFeature, readStateActionCreatorsModule, [a0, GUILD_ONBOARDING_QUESTION,
Reflect.apply(fromTimestamp, defaultImport2, [Date.now()])]);
_updateOnboardingResponses(a0, true);
if (ImpersonateStore.isFullServerPreview(a0)) {
(require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedChannels(a0, items,
[]);
(require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedData(a0,
{optInEnabled: true});
moduleValue11 = require(6607) /* metro dependency 6607: ImpersonateActionCreators */;
updateImpersonatedRoles = moduleValue11.updateImpersonatedRoles;
Array = global.Array;
Reflect.apply(updateImpersonatedRoles, moduleValue11, [a0, Array.from(selectedRoleIds)]);
currentUser = UserStore.getCurrentUser();
if (value2 != currentUser) {
value22 = GuildMemberStore.getMember(a0, currentUser.id);
flags = value2 == value22 ? value5 : value22.flags;
r9 = value2 != flags ? flags : value;
value = require(6607) /* metro dependency 6607: ImpersonateActionCreators */;
updateImpersonatedData = value.updateImpersonatedData;
moduleValue12 = require(1391) /* metro dependency 1391: FlagUtils */;
Reflect.apply(updateImpersonatedData, value, [a0, {memberOptions: {flags: moduleValue12.setFlag(r9,
GuildMemberFlags.COMPLETED_ONBOARDING, true)}}]);
}
}
return value5;
}
function onboardExistingMember(a0, a1) { // fn#52119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:3994, offset: 0x0131f848, size: 188 bytes, params: 3, frame: 19
var moduleValue;
var bulkOptInChannels;
const Set = global.Set;
let set = new Set(a1);
const getEnabled = GuildOnboardingPromptsStore.getEnabled;
(Reflect.apply(getEnabled, GuildOnboardingPromptsStore,
[a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []).forEach(_fun52120);
if (set.size > 0) {
moduleValue = require(6609) /* metro dependency 6609: OptInChannelsActionCreators */;
bulkOptInChannels = moduleValue.bulkOptInChannels;
set = global.Array.from(set);
Reflect.apply(bulkOptInChannels, moduleValue, [a0, set, true, {page: AnalyticsPages.GUILD_ONBOARDING}]);
}
}
function finishOnboarding(a0) { // fn#52121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4192, offset: 0x0131f904, size: 56 bytes, params: 2, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'GUILD_ONBOARDING_COMPLETE',
guildId: a0});
}
function setUserOnboardingStep(a0, a1) { // fn#52122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4277, offset: 0x0131f93c, size: 64 bytes, params: 3, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'GUILD_ONBOARDING_SET_STEP',
guildId: a0, step: a1});
}
function resetOnboarding(a0) { // fn#52123, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4392, offset: 0x0131f97c, size: 34 bytes, params: 2, frame: 11
const env0_0 = a0;
return env0_3(_fun52125)();
}
function _fun52101({options}) { // fn#52101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:468, offset: 0x0131f031, size: 27 bytes, params: 2, frame: 11
return options.filter(_fun52102);
}
function _fun52103({id, options}) { // fn#52103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:548, offset: 0x0131f067, size: 62 bytes, params: 2, frame: 13
const binding = env0_2;
const Date = global.Date;
binding[id] = Date.now();
options.forEach(_fun52104);
}
function _fun52106(a0) { // fn#52106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:801, offset: 0x0131f0cb, size: 123 bytes, params: 2, frame: 13
var value;
var dispatch;
var object2;
let body = a0.body;
if (body != null) {
value = environment.__proto__;
value = importDefault(694) /* metro dependency 694: Dispatcher */;
dispatch = value.dispatch;
object2 = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'};
object2.guildId = env0_0;
body = a0.body;
object2.options = body.onboarding_responses;
body = a0.body;
object2.prompts_seen = body.onboarding_prompts_seen;
body = a0.body;
object2.options_seen = body.onboarding_responses_seen;
Reflect.apply(dispatch, value, [object2]);
}
}
function _fun52107(a0) { // fn#52107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1035, offset: 0x0131f146, size: 41 bytes, params: 2, frame: 11
const value = environment.__proto__;
return (importDefault(1216) /* metro dependency 1216: SentryUtilsNative */).captureException(a0);
}
function _fun52110(a0) { // fn#52110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1484, offset: 0x0131f16f, size: 122 bytes, params: 2, frame: 20
let value = environment.__proto__;
value = importDefault(1216) /* metro dependency 1216: SentryUtilsNative */;
const captureException = value.captureException;
const Error = global.Error;
const value3 = 'Failed to update onboarding responses for guild ' + env0_0 + ': ' + a0.statusCode;
const value4 = Object.create(Error.prototype, {constructor: {value: Error}});
const error = new Error(value3, {cause: a0});
Reflect.apply(captureException, value, [error instanceof Object ? error : value4]);
}
function* _fun52125() { // fn#52125, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4398, offset: 0x0131f9a7, size: 191 bytes, params: 1, frame: 21
if (true) {
value = environment.__proto__.__proto__;
var binding = env2_8;
var currentUser = binding.getCurrentUser();
if (currentUser != null) {
binding = env2_7;
var r9 = binding.getMember(require, currentUser.id)?.flags ?? 0;
binding = env2_0;
var binding2 = env2_2;
var value8 = binding(binding2[24]);
var updateGuildSelfMember = value8.updateGuildSelfMember;
var value9 = binding(binding2[22]);
var setFlag = value9.setFlag;
var COMPLETED_ONBOARDING = env2_13.COMPLETED_ONBOARDING;
yield Reflect.apply(updateGuildSelfMember, value8, [require, {flags: Reflect.apply(setFlag, value9, [r9,
COMPLETED_ONBOARDING, false])}]);
if (false) {
return undefined;
}
}
}
}
function _fun52102({id}) { // fn#52102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:489, offset: 0x0131f04c, size: 27 bytes, params: 2, frame: 11
return env1_1.includes(id);
}
function _fun52104({id}) { // fn#52104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:590, offset: 0x0131f0a5, size: 38 bytes, params: 2, frame: 11
let value = environment.__proto__;
const binding = env1_3;
const Date = global.Date;
value = Date.now();
binding[id] = value;
return value;
}