Files
discord-decomp/modules/guild_themes/GuildThemeRuntimeStore.tsx
T
2026-11-01 12:12:55 +02:00

212 lines
6.8 KiB
TypeScript

// Metro module 4075 (f4076).
import GuildPowerupsStore from "../premium/powerups/GuildPowerupsStore";
import GuildStore from "../../stores/GuildStore";
import SelectedGuildStore from "../../stores/SelectedGuildStore";
import { GuildFeatures } from "../../Constants";
import { GUILD_POWERUP_GUILD_THEME_SKU_ID } from "../../_bundle/Module4080";
import { cloneGuildTheme } from "./guildThemeSerialization";
import { isEqual } from "../../_bundle/Module12";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let c2343_6, guildId;
const snapshotSelectedGuildId = function snapshotSelectedGuildId(a0) {
let r28;
if (a0 == null) {
let r40 = c2343_6 != null;
if (r40) {
c2343_6 = null;
r40 = true;
}
r28 = r40;
} else {
const guildTheme = cloneGuildTheme(GuildStore.getGuild(a0)?.guildTheme);
const guild = GuildStore.getGuild(a0);
const r20 = guild == null ? void 0 : guild.features.has(GuildFeatures.GUILD_THEME);
r28 = c2343_6?.guildId !== a0 || !isEqual(c2343_6.guildTheme, guildTheme);
const hasThemeFeature = r20 === true;
if (!r28) {
r28 = c2343_6.hasThemeFeature !== hasThemeFeature;
}
if (r28) {
c2343_6 = {
guildId: a0,
guildTheme,
hasThemeFeature
};
r28 = true;
}
}
return r28;
};
const snapshotSelectedGuild = function snapshotSelectedGuild() {
return snapshotSelectedGuildId(SelectedGuildStore.getGuildId());
};
const handleSavedGuildTheme = function handleSavedGuildTheme({ guildId: guildId2, guildTheme }) {
let r1 = guildId2 === SelectedGuildStore.getGuildId();
if (r1) {
const guildTheme2 = cloneGuildTheme(guildTheme);
const guild = GuildStore.getGuild(guildId2);
const r23 = guild == null ? void 0 : guild.features.has(GuildFeatures.GUILD_THEME);
let r29 = c2343_6?.guildId !== guildId2 || !isEqual(c2343_6.guildTheme, guildTheme2);
const hasThemeFeature = r23 === true;
if (!r29) {
r29 = c2343_6.hasThemeFeature !== hasThemeFeature;
}
if (r29) {
c2343_6 = {
guildId: guildId2,
guildTheme: guildTheme2,
hasThemeFeature
};
r29 = true;
}
r1 = r29;
}
return r1;
};
c2343_6 = null;
guildId = null;
class GuildThemeRuntimeStore extends Module589.Store {
static displayName = "GuildThemeRuntimeStore";
initialize() {
this.waitFor(GuildPowerupsStore, GuildStore, SelectedGuildStore);
}
getGuildThemeSnapshot(a0) {
return a0 !== guildId ? a0 === c2343_6?.guildId ? c2343_6.guildTheme : void 0 : null;
}
}
const guildThemeRuntimeStore = new GuildThemeRuntimeStore(Dispatcher, {
CACHE_LOADED: snapshotSelectedGuild,
CACHE_LOADED_LAZY: snapshotSelectedGuild,
CHANNEL_SELECT: function handleChannelSelect({ guildId: guildId2 }) {
let r9;
if (guildId2 == null) {
let r2 = c2343_6 != null;
if (r2) {
c2343_6 = null;
r2 = true;
}
r9 = r2;
} else {
r9 = guildId2 !== c2343_6?.guildId && snapshotSelectedGuildId(guildId2);
}
return r9;
},
CONNECTION_OPEN: snapshotSelectedGuild,
GUILD_DELETE: function handleGuildDelete(a0) {
const id = a0.guild.id;
const guildId2 = c2343_6?.guildId;
let r11 = false;
if (guildId2 === id) {
const guildId3 = SelectedGuildStore.getGuildId();
r11 = guildId3 !== id && snapshotSelectedGuildId(guildId3);
}
return r11;
},
GUILD_MEMBER_REMOVE: function handleGuildMemberRemove({ guildId: guildId2 }) {
const guildId3 = c2343_6?.guildId;
let r10 = false;
if (guildId3 === guildId2) {
const guildId4 = SelectedGuildStore.getGuildId();
r10 = guildId4 !== guildId2 && snapshotSelectedGuildId(guildId4);
}
return r10;
},
GUILD_UPDATE: function handleGuildUpdate({ guild }) {
let r1 = guild.id !== guildId;
if (!r1) {
const guild2 = GuildStore.getGuild(guild.id);
r1 = (guild2 == null ? void 0 : guild2.features.has(GuildFeatures.GUILD_THEME)) === true;
}
let r27 = false;
if (!r1) {
guildId = null;
r27 = true;
}
const id = guild.id;
const r30 = c2343_6;
const r6 = r30 == null;
let r31 = false;
if (!r6) {
const guildId2 = r30.guildId;
r31 = false;
if (id === guildId2) {
const guild3 = GuildStore.getGuild(id);
const hasThemeFeature2 = (guild3 == null ? void 0 : guild3.features.has(GuildFeatures.GUILD_THEME)) === true;
const hasThemeFeature = r30.hasThemeFeature;
r31 = false;
if (hasThemeFeature2 !== hasThemeFeature) {
let r3 = !hasThemeFeature2;
if (hasThemeFeature2) {
const stateForGuild = GuildPowerupsStore.getStateForGuild(id);
const r4 = stateForGuild == null;
let r45 = void 0;
if (!r4) {
const unlockedPowerups = stateForGuild.unlockedPowerups;
r45 = unlockedPowerups == null ? void 0 : unlockedPowerups[GUILD_POWERUP_GUILD_THEME_SKU_ID];
}
r3 = r45 != null && !(r30.guildTheme?.enabled === true);
}
const guildTheme = r3 ? cloneGuildTheme(GuildStore.getGuild(id)?.guildTheme) : r30.guildTheme;
let r70 = c2343_6?.guildId !== id || !isEqual(c2343_6.guildTheme, guildTheme) || c2343_6.hasThemeFeature !== hasThemeFeature2;
if (r70) {
c2343_6 = {
guildId: id,
guildTheme,
hasThemeFeature: hasThemeFeature2
};
r70 = true;
}
r31 = r70;
}
}
}
if (r31) {
r27 = true;
}
return r27;
},
GUILD_POWERUP_ENTITLEMENTS_CREATE: function handleThemePowerupAdded({ guildId: guildId2, entitlements }) {
let r1 = guildId === guildId2;
if (r1) {
let r11 = !!entitlements.some((entitlement) => entitlement.sku_id === GUILD_POWERUP_GUILD_THEME_SKU_ID);
if (r11) {
guildId = null;
r11 = true;
}
r1 = r11;
}
return r1;
},
GUILD_POWERUP_ENTITLEMENTS_DELETE: function handleThemePowerupRemoved(a0) {
const guildId2 = a0.guildId;
let r10 = !!a0.entitlements.some((entitlement) => entitlement.sku_id === GUILD_POWERUP_GUILD_THEME_SKU_ID);
if (r10) {
let r14 = guildId2 === c2343_6?.guildId && guildId !== guildId2;
if (r14) {
guildId = guildId2;
r14 = true;
}
r10 = r14;
}
return r10;
},
GUILD_SETTINGS_GUILD_THEME_SAVE_SUCCESS: handleSavedGuildTheme,
GUILD_THEME_PREVIEW_SAVE_SUCCESS: handleSavedGuildTheme,
OVERLAY_INITIALIZE: snapshotSelectedGuild,
LOGOUT: function handleConnectionReset() {
const r2 = guildId != null;
guildId = null;
let r0 = c2343_6 != null;
if (r0) {
c2343_6 = null;
r0 = true;
}
if (!r0) {
r0 = r2;
}
return r0;
}
});
export default guildThemeRuntimeStore;