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

412 lines
24 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] */
import Module00005 from '../../by-id/module-00005.js'; /* Metro dependency 5 */
import SnowflakeUtils from '../../utils/SnowflakeUtils.tsx'; /* Metro dependency 21 */
import Module00057 from '../../by-id/module-00057.js'; /* Metro dependency 57 */
import AnalyticsUtils from '../../utils/AnalyticsUtils.tsx'; /* Metro dependency 683 */
import Dispatcher from '../../Dispatcher.tsx'; /* Metro dependency 694 */
import SentryUtilsNative from '../../utils/SentryUtils.native.tsx'; /* Metro dependency 1216 */
import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */
import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */
import ImpersonateStore from '../impersonate/ImpersonateStore.tsx'; /* Metro dependency 1937 */
import GuildMemberStore from '../../stores/GuildMemberStore.tsx'; /* Metro dependency 1945 */
import GuildOnboardingPromptsStore from './GuildOnboardingPromptsStore.tsx'; /* Metro dependency 6603 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as HTTPUtilsModule from '../../external/discord_common/js/packages/http-utils/HTTPUtils.tsx'; /* Metro dependency 507 */
import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */
import * as GlobalUtilsModule from '../../utils/GlobalUtils.tsx'; /* Metro dependency 1360 */
import * as GuildMemberConstantsModule from '../guild_member/GuildMemberConstants.tsx'; /* Metro dependency 3772 */
import * as AppAnalyticsUtilsModule from '../app_analytics/AppAnalyticsUtils.tsx'; /* Metro dependency 4863 */
import * as ReadStateConstantsModule from '../read_states/ReadStateConstants.tsx'; /* Metro dependency 4865 */
import * as ReadStateActionCreatorsModule from '../../actions/ReadStateActionCreators.tsx'; /* Metro dependency 5097 */
import * as GuildOnboardingUtilsModule from './GuildOnboardingUtils.tsx'; /* Metro dependency 5105 */
import * as UseFlattenedChannelsModule from './useFlattenedChannels.tsx'; /* Metro dependency 6608 */
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
const env0_0 = require;
const _updateOnboardingResponses2 = _updateOnboardingResponses;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
object = {selectOption: selectOption};
object.updateOnboardingResponses = (importDefault(22) /* metro dependency 22 */).debounce(_updateOnboardingResponses2,
1000);
object.updateRolesLocal = updateRolesLocal;
object.completeOnboarding = completeOnboarding;
object.onboardExistingMember = onboardExistingMember;
object.finishOnboarding = finishOnboarding;
object.setUserOnboardingStep = setUserOnboardingStep;
object.resetOnboarding = resetOnboarding;
(FileImportTrackerModule).fileFinishedImporting('modules/guild_onboarding/GuildOnboardingActionCreators.tsx');
exports.default = object;
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 object;
var object2;
var post;
var object3;
var object4;
let value = a1;
const env0_0 = a0;
let r1 = value !== undefined ? value : false;
const impersonateStoreBinding = ImpersonateStore;
if (impersonateStoreBinding.isFullServerPreview(a0)) {
return undefined;
}
const guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore;
const r5 = r1 ? guildOnboardingPromptsStoreBinding.getOnboardingPromptsForOnboarding(a0) : guildOnboardingPromptsStoreBinding.getOnboardingPrompts(a0);
const env0_1 = GuildOnboardingPromptsStore.getOnboardingResponses(a0);
const value5 = r5.map(function({options}) {
return options.filter(_fun52102);
}).flat();
const object5 = {};
const object6 = {};
r5.forEach(_fun52103);
const HTTP = (HTTPUtilsModule).HTTP;
if (r1) {
post = HTTP.post;
object3 = {};
object3.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0);
object4 = {};
object4.onboarding_responses = value5.map(function(a0) {
return a0.id;
});
object4.onboarding_prompts_seen = object5;
object4.onboarding_responses_seen = object6;
object3.body = object4;
object3.rejectWithError = true;
value = Reflect.apply(post, HTTP, [object3]);
value = value.then(_fun52106);
value = value.catch(_fun52107);
r1 = value;
} else {
put = HTTP.put;
object = {};
object.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0);
object2 = {};
object2.onboarding_responses = value5.map(_fun52108);
object2.onboarding_prompts_seen = object5;
object2.onboarding_responses_seen = object6;
object.body = object2;
object.rejectWithError = false;
value = Reflect.apply(put, HTTP, [object]);
value = value.then(_fun52109);
value = value.catch(_fun52110);
r1 = value;
}
return r1;
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 _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 _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 _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;
}
}
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 object;
let body = a0.body;
if (body != null) {
value = environment.__proto__;
value = importDefault(694) /* metro dependency 694: Dispatcher */;
dispatch = value.dispatch;
object = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'};
object.guildId = env0_0;
body = a0.body;
object.options = body.onboarding_responses;
body = a0.body;
object.prompts_seen = body.onboarding_prompts_seen;
body = a0.body;
object.options_seen = body.onboarding_responses_seen;
Reflect.apply(dispatch, value, [object]);
}
}
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 (SentryUtilsNative).captureException(a0);
}
function _fun52109(a0) { // fn#52109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1250, offset: 0x0131f0cb, size: 123 bytes, params: 2, frame: 13
var value;
var dispatch;
var object;
let body = a0.body;
if (body != null) {
value = environment.__proto__;
value = importDefault(694) /* metro dependency 694: Dispatcher */;
dispatch = value.dispatch;
object = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'};
object.guildId = env0_0;
body = a0.body;
object.options = body.onboarding_responses;
body = a0.body;
object.prompts_seen = body.onboarding_prompts_seen;
body = a0.body;
object.options_seen = body.onboarding_responses_seen;
Reflect.apply(dispatch, value, [object]);
}
}
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 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) ?? [];
const impersonateStoreBinding = ImpersonateStore;
if (impersonateStoreBinding.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 guildMemberStoreBinding;
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 = (GuildOnboardingUtilsModule).getSelectedRoleIds(selectedOptions);
const selectedChannelIds = (GuildOnboardingUtilsModule).getSelectedChannelIds(selectedOptions);
guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore;
const getEnabled = guildOnboardingPromptsStoreBinding.getEnabled;
let r9 = Reflect.apply(getEnabled, guildOnboardingPromptsStoreBinding,
[a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : [];
const value10 = Module00057((GuildOnboardingUtilsModule).getChannelCoverageForOnboarding(a0,
a1, r9), 2);
const property = value10[value];
const property2 = value10[1];
const items2 = [];
arraySpread(items2, r9, arraySpread(items2, selectedChannelIds, value, undefined), undefined);
const value11 = items2.map(function(a0) {
return ChannelStore.getChannel(a0);
});
const value12 = value11.filter((GlobalUtilsModule).isNotNullish);
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 = (GuildOnboardingUtilsModule).getProviderConnectionState(connections);
const applicationConnectionState = (GuildOnboardingUtilsModule).getApplicationConnectionState(connections);
const defaultImport = AnalyticsUtils;
const track = defaultImport.track;
const GUILD_ONBOARDING_STEP_COMPLETED = AnalyticEvents.GUILD_ONBOARDING_STEP_COMPLETED;
const object = {};
copyDataProperties(object, AppAnalyticsUtilsModule.collectGuildAnalyticsMetadata(a0), value12);
object['step'] = a1.length - 1;
object['options_selected'] = value2 == r20 ? value : selectedOptions.filter(_fun52116).length;
object['skipped'] = r16.length > value;
object['back'] = false;
object['in_onboarding'] = true;
object['is_final_step'] = true;
object['roles_granted'] = selectedRoleIds.size;
object['channels_granted'] = length2;
object['guild_onboarding_covered_channel_ids'] = property.map(function(a0) {
return a0.id;
});
object['guild_onboarding_uncovered_channel_ids'] = property2.map(function(a0) {
return a0.id;
});
object['provider_connections_connected'] = providerConnectionState.connected;
object['provider_connections_not_connected'] = providerConnectionState.notConnected;
object['application_connections_connected'] = applicationConnectionState.connected;
object['application_connections_not_connected'] = applicationConnectionState.notConnected;
Reflect.apply(track, defaultImport, [GUILD_ONBOARDING_STEP_COMPLETED, object]);
const ackGuildFeature = ReadStateActionCreatorsModule.ackGuildFeature;
const GUILD_ONBOARDING_QUESTION = ReadStateTypes.GUILD_ONBOARDING_QUESTION;
const defaultImport2 = 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);
const impersonateStoreBinding = ImpersonateStore;
if (impersonateStoreBinding.isFullServerPreview(a0)) {
(require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedChannels(a0, items2,
[]);
(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) {
guildMemberStoreBinding = GuildMemberStore;
value22 = guildMemberStoreBinding.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 _fun52116({id}) { // fn#52116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:3049, offset: 0x0131e22c, size: 27 bytes, params: 2, frame: 11
return env0_0.includes(id);
}
}
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 guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore;
const getEnabled = guildOnboardingPromptsStoreBinding.getEnabled;
(Reflect.apply(getEnabled, guildOnboardingPromptsStoreBinding,
[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 _fun52120(a0) { // fn#52120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4094, offset: 0x00c37e1f, size: 22 bytes, params: 2, frame: 11
return env0_0.add(a0);
}
}
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
(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
(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 Module00005(_fun52125)();
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 _fun52108(a0) { // fn#52108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1158, offset: 0x00e46f8c, size: 10 bytes, params: 2, frame: 1
return a0.id;
}
global.__d(_fun52099, 6606, [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]) /* metro module 6606, 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] */;