Files
discord-decomp/modules/guild_onboarding_home/native/GuildOnboardingHomeManager.tsx
T
2026-11-01 12:12:55 +02:00

285 lines
10 KiB
TypeScript

// Metro module 16188 (f16189).
import _slicedToArray from "../../../_bundle/_slicedToArray";
import ImpersonateStore from "../../impersonate/ImpersonateStore";
import AuthenticationStore from "../../../stores/AuthenticationStore";
import ChannelStore from "../../../stores/ChannelStore";
import GuildMemberStore from "../../../stores/GuildMemberStore";
import GuildStore from "../../../stores/GuildStore";
import SelectedGuildStore from "../../../stores/SelectedGuildStore";
import GuildOnboardingHomeSettingsStore from "../GuildOnboardingHomeSettingsStore";
import GuildOnboardingMemberActionStore from "../GuildOnboardingMemberActionStore";
import { GuildMemberFlags } from "../../guild_member/GuildMemberConstants";
import AutomaticLifecycleManager from "../../../lib/AutomaticLifecycleManager";
import * as _Module1384 from "../../../_bundle/Module1384";
import ModalActionCreators from "../../../actions/ModalActionCreators";
import { NEW_MEMBER_ACTION_COMPLETE_MODAL_KEY, NewMemberActionTypes } from "../GuildOnboardingHomeTypes";
import { ModalAnimation } from "../../../ConstantsIOS";
import { completeNewMemberAction, fetchGuildHomeSettings, fetchNewMemberActions } from "../GuildOnboardingHomeActionCreators";
import * as _OnboardingHomeUtils from "../OnboardingHomeUtils";
import { getIsNewMember } from "../useIsNewMember";
function $mk118530($env) {
return (a0) => a0.channelId === $env[1];
}
function $mk118531($env) {
return (a0) => a0.channelId === $env[1];
}
class GuildOnboardingHomeManager extends AutomaticLifecycleManager {
constructor() {
let c22855_0, c22855_1;
let c22856_0, c22856_1;
let c22857_0, c22857_1;
let c22858_0;
let c22859_0;
super(...arguments);
const _this = this;
this.onboardingCompleteGuilds = new Set();
this.actions = {
POST_CONNECTION_OPEN: () => _this.handlePostConnectionOpen(),
GUILD_MEMBER_UPDATE: (a0) => _this.handleGuildMemberUpdate(a0),
GUILD_DELETE: (a0) => _this.handleGuildDelete(a0),
CHANNEL_SELECT: (a0) => _this.handleChannelSelect(a0),
MESSAGE_CREATE: (a0) => _this.handleMessageSend(a0),
THREAD_CREATE: (a0) => _this.handleThreadCreate(a0)
};
this.handlePostConnectionOpen = () => {
const guilds = GuildStore.getGuilds();
for (const key in guilds) {
let r23 = GuildMemberStore.getSelfMember(key)?.flags;
if (r23 == null) {
r23 = 0;
}
if (_Module1384.hasFlag(r23, GuildMemberFlags.COMPLETED_HOME_ACTIONS)) {
_this.onboardingCompleteGuilds.add(key);
}
}
const guildId = SelectedGuildStore.getGuildId();
if (guildId != null) {
_this._getOrLoadOnboardingMemberActions(guildId);
}
};
this.handleGuildMemberUpdate = (a0) => {
let flags2 = a0.flags;
const { user, guildId } = a0;
if (user.id === AuthenticationStore.getId()) {
if (!_this.onboardingCompleteGuilds.has(guildId)) {
if (flags2 == null) {
flags2 = 0;
}
if (_Module1384.hasFlag(flags2, GuildMemberFlags.COMPLETED_HOME_ACTIONS)) {
_this.onboardingCompleteGuilds.add(guildId);
let numActions = GuildOnboardingHomeSettingsStore.getNewMemberActions(guildId)?.length;
if (numActions == null) {
numActions = 0;
}
if (numActions === 0) {
return void 0;
}
ModalActionCreators.pushLazy(import("./NewMemberActionsCompletedModal"), {
initialPercent: (numActions - 1) / numActions,
numActions
}, NEW_MEMBER_ACTION_COMPLETE_MODAL_KEY, {
animation: ModalAnimation.FADE
});
}
}
}
};
this.handleGuildDelete = (a0) => {
_this.onboardingCompleteGuilds.delete(a0.guild.id);
};
c22855_0 = void 0;
c22855_1 = this;
c22855_0 = async (c30981_0) => {
let c30981_2;
let env31793;
c30981_2 = void 0;
const r9 = env31793 = {};
let c30981_1 = r9;
env31793[0] = void 0;
env31793[1] = void 0;
env31793[0] = c30981_0.guildId;
env31793[1] = c30981_0.channelId;
env31793[2] = void 0;
env31793[3] = void 0;
env31793[4] = void 0;
env31793[5] = void 0;
await void 0;
if (env31793[0] != null && env31793[1] != null) {
env31793[2] = await c22855_1._getOrLoadOnboardingMemberActions(env31793[0]);
env31793[3] = env31793[2].memberActions;
env31793[4] = env31793[2].completedActions;
const r13 = env31793[3];
env31793[5] = r13 == null ? void 0 : r13.find($mk118530(c30981_1));
const r12 = env31793[4];
if ((r12 == null ? void 0 : r12[env31793[1]]) !== true && env31793[5] != null && env31793[5].actionType === NewMemberActionTypes.VIEW) {
completeNewMemberAction(env31793[0], env31793[1]);
}
}
};
this.handleChannelSelect = function() {
return c22855_0.apply(this, arguments);
};
this.handleMessageSend = ({ guildId, channelId, message }) => {
if (guildId != null && channelId != null) {
if (message.author?.id === AuthenticationStore.getId()) {
const channel = ChannelStore.getChannel(channelId);
if ((channel == null ? void 0 : channel.isForumPost()) && channel?.parent_id != null) {
_this._completeChatAction(guildId, channel.parent_id);
}
_this._completeChatAction(guildId, channelId);
}
}
};
this.handleThreadCreate = (a0) => {
const channel = a0.channel;
let r6 = a0.isNewlyCreated && channel.parent_id != null;
if (r6) {
const channel2 = ChannelStore.getChannel(channel.parent_id);
r6 = channel2 == null ? void 0 : channel2.isForumLikeChannel();
}
if (r6) {
r6 = channel.ownerId === AuthenticationStore.getId();
}
if (r6) {
_this._completeChatAction(channel.guild_id, channel.parent_id);
}
};
c22856_0 = void 0;
c22856_1 = this;
c22856_0 = async (c30982_0, c30982_1) => {
let c30982_3;
let env31794;
c30982_3 = void 0;
const r11 = env31794 = {};
let c30982_2 = r11;
env31794[0] = c30982_0;
env31794[1] = c30982_1;
env31794[2] = void 0;
env31794[3] = void 0;
env31794[4] = void 0;
env31794[5] = void 0;
env31794[2] = await c22856_1._getOrLoadOnboardingMemberActions(c30982_0);
env31794[3] = env31794[2].memberActions;
env31794[4] = env31794[2].completedActions;
const r12 = env31794[3];
env31794[5] = r12 == null ? void 0 : r12.find($mk118531(c30982_2));
const r51 = env31794[4];
if ((r51 == null ? void 0 : r51[env31794[1]]) !== true && env31794[5] != null && env31794[5].actionType === NewMemberActionTypes.CHAT) {
completeNewMemberAction(env31794[0], env31794[1]);
}
};
this._completeChatAction = function() {
return c22856_0.apply(this, arguments);
};
c22857_0 = void 0;
c22857_1 = this;
c22857_0 = async (c30983_0) => {
let r78;
let c30983_2;
let c31795_0, c31795_1;
L17: {
L16: {
L10: {
c30983_2 = void 0;
c31795_0 = void 0;
c31795_1 = void 0;
const canSeeOnboardingHome = _OnboardingHomeUtils.canSeeOnboardingHome(c30983_0);
const isFullServerPreview = ImpersonateStore.isFullServerPreview(c30983_0);
if (!canSeeOnboardingHome && !isFullServerPreview) {
break L10;
}
const selfMember = GuildMemberStore.getSelfMember(c30983_0);
if (selfMember == null) {
break L17;
}
if (!getIsNewMember(c30983_0)) {
break L17;
}
const r45 = Promise;
c31795_0 = await r45.all([c22857_1._getOrLoadOnboardingHomeSettings(c30983_0), c22857_1._getOrLoadMemberActions(c30983_0, selfMember)]);
c31795_1 = (0, _slicedToArray)(c31795_0, 2);
r78 = {
memberActions: c31795_1[0],
completedActions: c31795_1[1]
};
break L16;
}
return {};
}
return r78;
}
return {};
};
this._getOrLoadOnboardingMemberActions = function() {
return c22857_0.apply(this, arguments);
};
c22858_0 = void 0;
c22858_0 = async (c30984_0) => {
let r57, newMemberActions;
let c31796_0;
L16: {
L15: {
c31796_0 = void 0;
newMemberActions = GuildOnboardingHomeSettingsStore.getNewMemberActions(c30984_0);
const isLoading = GuildOnboardingHomeSettingsStore.getIsLoading(c30984_0);
if (newMemberActions != null) {
break L16;
}
if (isLoading) {
break L16;
}
if (!getIsNewMember(c30984_0)) {
break L16;
}
c31796_0 = await fetchGuildHomeSettings(c30984_0);
const r54 = c31796_0;
const r56 = r54 == null;
r57 = void 0;
if (r56) {
break L15;
}
r57 = r54.newMemberActions;
}
return r57;
}
return newMemberActions;
};
this._getOrLoadOnboardingHomeSettings = function() {
return c22858_0.apply(this, arguments);
};
c22859_0 = void 0;
c22859_0 = async (c30985_0, c30985_1) => {
let r8;
let flags;
L15: {
const state = GuildOnboardingMemberActionStore.getState(c30985_0);
const { completedActions, loading } = state;
r8 = completedActions;
if (completedActions != null) {
break L15;
}
r8 = completedActions;
if (loading) {
break L15;
}
flags = c30985_1.flags;
if (flags == null) {
flags = 0;
}
const hasFlag = _Module1384.hasFlag(flags, GuildMemberFlags.STARTED_HOME_ACTIONS);
r8 = completedActions;
if (!hasFlag) {
break L15;
}
return await fetchNewMemberActions(c30985_0);
}
return r8;
};
this._getOrLoadMemberActions = function() {
return c22859_0.apply(this, arguments);
};
}
}
const guildOnboardingHomeManager = new GuildOnboardingHomeManager();
export default guildOnboardingHomeManager;