This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,27 @@
// Metro module 15569 (f15570).
import GuildStore from "../../stores/GuildStore";
export function collectGuildThemeAnalyticsMetadata(a0) {
if (a0 == null) {
return null;
}
const guild = GuildStore.getGuild(a0);
if (guild == null) {
return null;
}
const guildTheme = guild.guildTheme;
if (guildTheme != null && guildTheme.enabled) {
const r12 = {
guild_theme_enabled: true,
guild_theme_is_custom: guildTheme.themeSettings?.customUserThemeSettings != null
};
const presetId = guildTheme.themeSettings?.presetId;
if (presetId != null) {
r12.guild_theme_preset_id = presetId;
}
return r12;
}
return {
guild_theme_enabled: false,
guild_theme_is_custom: false
};
}
@@ -0,0 +1,14 @@
// Metro module 15135 (f15136).
import UserSettingsProtoStore from "../user_settings/UserSettingsProtoStore";
import { GuildThemeSourcePreference } from "../../flow/Client";
import { setDefaultGuildThemePreference, clearGuildThemeSourcePreferenceOverride } from "../user_settings/UserSettingsProtoActionCreators";
export function getInitialGuildThemeNuxSelection() {
return UserSettingsProtoStore.getDefaultGuildThemePreference() === GuildThemeSourcePreference.PERSONAL ? GuildThemeSourcePreference.PERSONAL : GuildThemeSourcePreference.GUILD;
}
export async function saveGuildThemeNuxPreference(c27950_0, c27950_1) {
let c27950_3;
c27950_3 = void 0;
let c30846_0 = c27950_0;
await setDefaultGuildThemePreference(c27950_1 ? GuildThemeSourcePreference.PERSONAL : GuildThemeSourcePreference.GUILD);
await clearGuildThemeSourcePreferenceOverride(c30846_0);
}
+369
View File
@@ -0,0 +1,369 @@
// Metro module 4037 (f4038).
import { ThemeTypes } from "../../_bundle/Module505";
import Module689 from "../../_bundle/Module689";
import { COLOR_PALETTE } from "../client_themes/CustomThemesRandomUtils";
const r24 = {
TWILIGHT: 1,
PLUM: 2,
FIRE: 3,
GOLD_DUST: 4,
MOSS: 5,
JADE: 6,
OBSIDIAN: 7,
OCEAN: 8,
DENIM: 9,
BLURPLE: 10
};
const r26 = [r24.TWILIGHT, r24.DENIM, r24.OCEAN, r24.BLURPLE, r24.OBSIDIAN, r24.PLUM, r24.FIRE, r24.GOLD_DUST, r24.MOSS, r24.JADE];
const r36 = {};
r36[r24.TWILIGHT] = {
id: r24.TWILIGHT,
darkAppearance: {
color: "#69426A",
angle: 0,
baseMix: 100,
colors: [{
hex: "#69426A",
stop: 0
}, {
hex: "#111731",
stop: 100
}]
},
lightAppearance: {
color: "#FA9EFF",
angle: 0,
baseMix: 100,
colors: [{
hex: "#FA9EFF",
stop: 0
}, {
hex: "#5A7EFE",
stop: 100
}]
}
};
r36[r24.DENIM] = {
id: r24.DENIM,
darkAppearance: {
color: "#5359AD",
angle: 0,
baseMix: 100,
colors: [{
hex: "#5359AD",
stop: 0
}, {
hex: "#121238",
stop: 100
}]
},
lightAppearance: {
color: "#DBDBFF",
angle: 0,
baseMix: 100,
colors: [{
hex: "#DBDBFF",
stop: 0
}, {
hex: "#6060FF",
stop: 100
}]
}
};
r36[r24.OCEAN] = {
id: r24.OCEAN,
darkAppearance: {
color: "#245B92",
angle: 0,
baseMix: 100,
colors: [{
hex: "#245B92",
stop: 0
}, {
hex: "#141D40",
stop: 100
}]
},
lightAppearance: {
color: "#9ADBF7",
angle: 0,
baseMix: 100,
colors: [{
hex: "#9ADBF7",
stop: 0
}, {
hex: "#2D3CCA",
stop: 100
}]
}
};
r36[r24.BLURPLE] = {
id: r24.BLURPLE,
darkAppearance: {
color: "#533D9E",
angle: 0,
baseMix: 100,
colors: [{
hex: "#533D9E",
stop: 0
}, {
hex: "#1A1035",
stop: 100
}]
},
lightAppearance: {
color: "#C3BFFF",
angle: 0,
baseMix: 100,
colors: [{
hex: "#C3BFFF",
stop: 0
}, {
hex: "#816BDC",
stop: 100
}]
}
};
r36[r24.OBSIDIAN] = {
id: r24.OBSIDIAN,
darkAppearance: {
color: "#5E4C85",
angle: 0,
baseMix: 100,
colors: [{
hex: "#5E4C85",
stop: 0
}, {
hex: "#1E1740",
stop: 100
}]
},
lightAppearance: {
color: "#B59DF2",
angle: 0,
baseMix: 100,
colors: [{
hex: "#B59DF2",
stop: 0
}, {
hex: "#8F89D2",
stop: 100
}]
}
};
r36[r24.PLUM] = {
id: r24.PLUM,
darkAppearance: {
color: "#8A3F7F",
angle: 0,
baseMix: 100,
colors: [{
hex: "#8A3F7F",
stop: 0
}, {
hex: "#2C0D25",
stop: 100
}]
},
lightAppearance: {
color: "#E893FF",
angle: 0,
baseMix: 100,
colors: [{
hex: "#E893FF",
stop: 0
}, {
hex: "#FFADDC",
stop: 100
}]
}
};
r36[r24.FIRE] = {
id: r24.FIRE,
darkAppearance: {
color: "#9B2C2C",
angle: 0,
baseMix: 50,
colors: [{
hex: "#9B2C2C",
stop: 0
}, {
hex: "#2A0C0C",
stop: 100
}]
},
lightAppearance: {
color: "#FFEBCA",
angle: 0,
baseMix: 50,
colors: [{
hex: "#FFEBCA",
stop: 0
}, {
hex: "#FF8989",
stop: 100
}]
}
};
r36[r24.GOLD_DUST] = {
id: r24.GOLD_DUST,
darkAppearance: {
color: "#6C523D",
angle: 0,
baseMix: 50,
colors: [{
hex: "#6C523D",
stop: 0
}, {
hex: "#241912",
stop: 100
}]
},
lightAppearance: {
color: "#FFE7DA",
angle: 0,
baseMix: 50,
colors: [{
hex: "#FFE7DA",
stop: 0
}, {
hex: "#FFD89B",
stop: 100
}]
}
};
r36[r24.MOSS] = {
id: r24.MOSS,
darkAppearance: {
color: "#58694E",
angle: 0,
baseMix: 50,
colors: [{
hex: "#58694E",
stop: 0
}, {
hex: "#222A1C",
stop: 100
}]
},
lightAppearance: {
color: "#B7D19F",
angle: 0,
baseMix: 50,
colors: [{
hex: "#B7D19F",
stop: 0
}, {
hex: "#B1DCA4",
stop: 100
}]
}
};
r36[r24.JADE] = {
id: r24.JADE,
darkAppearance: {
color: "#297071",
angle: 0,
baseMix: 50,
colors: [{
hex: "#297071",
stop: 0
}, {
hex: "#18203F",
stop: 100
}]
},
lightAppearance: {
color: "#C5F0D2",
angle: 0,
baseMix: 50,
colors: [{
hex: "#C5F0D2",
stop: 0
}, {
hex: "#60ADB2",
stop: 100
}]
}
};
let c2314_4 = r36;
let c2314_5 = new Set(Object.values(r24));
let c2314_6 = r26.map((item) => c2314_4[item]);
export { r24 as GUILD_THEME_PRESET_IDS };
export const GUILD_THEME_DEFAULT_BASE_MIX = 74;
export const GUILD_THEME_DEFAULT_COLOR = "#5865F2";
export const GUILD_THEME_MIN_TONE = 15;
export const GUILD_THEME_MAX_TONE = 75;
export const GUILD_THEME_CUSTOM_SATURATION = 0.4;
export const GUILD_THEME_TONE_TRIM = 40;
export { c2314_6 as GUILD_THEME_PRESETS };
export function getGuildThemePreset(a0) {
return a0 != null ? c2314_5.has(a0) ? c2314_4[a0] : null : null;
}
export function getDefaultGuildThemePresetSettings() {
return {
presetId: c2314_6[0].id,
customUserThemeSettings: void 0
};
}
export function getGuildThemePresetAppearance(a0, a1) {
return a1 === ThemeTypes.LIGHT ? a0.lightAppearance : a0.darkAppearance;
}
export function getLinearGradientForGuildThemePreset(a0, a1) {
const r14 = a1 === ThemeTypes.LIGHT ? a0.lightAppearance : a0.darkAppearance;
return `linear-gradient(${r14.angle}deg, ${r14.colors.map((color) => `${color.hex} ${color.stop}%`).join(", ")})`;
}
export function getSingleColorGuildThemeGradientColors(a0, a1) {
const r7 = a1 === ThemeTypes.LIGHT ? {
minTone: 55,
maxTone: 75
} : {
minTone: 15,
maxTone: 35
};
const { minTone, maxTone } = r7;
const r11 = Module689(a0);
const r38 = r11.set("hsl.l", (minTone + (Math.max(15, Math.min(75, 100 * r11.get("hsl.l"))) - 15) / 60 * (maxTone - minTone)) / 100).hex();
const r41 = Module689(r38);
const r43 = a1 === ThemeTypes.LIGHT ? 0.2 : -0.2;
return [r38, r41.set("hsl.l", Math.max(0, Math.min(1, r41.get("hsl.l") + r43))).hex()];
}
export function getRandomSingleColorGuildTheme() {
const r1 = COLOR_PALETTE.length - 1;
const r29 = COLOR_PALETTE[Math.floor(Math.random() * (r1 - 0 + 1)) + 0];
const r41 = Math.min(45, Math.round(100 * Module689(r29).get("hsl.l")));
return {
color: Module689(Module689(r29).set("hsl.l", Math.max(0.15, Math.min(0.75, r41 / 100))).hex()).set("hsl.s", 0.4).hex(),
baseMix: Math.floor(Math.random() * 11) + 70
};
}
export function getSaturationPinnedColor(a0) {
return Module689(a0).set("hsl.s", 0.4).hex();
}
export function getToneAdjustedColor(a0, a1) {
return Module689(a0).set("hsl.l", Math.max(0.15, Math.min(0.75, a1 / 100))).hex();
}
export function getGuildThemeToneRange(a0) {
return a0 === ThemeTypes.LIGHT ? {
minTone: 55,
maxTone: 75
} : {
minTone: 15,
maxTone: 35
};
}
export function getThemeAdjustedToneColor(a0, a1) {
const r14 = a1 === ThemeTypes.LIGHT ? {
minTone: 55,
maxTone: 75
} : {
minTone: 15,
maxTone: 35
};
const { minTone, maxTone } = r14;
const r20 = Module689(a0);
return r20.set("hsl.l", (minTone + (Math.max(15, Math.min(75, 100 * r20.get("hsl.l"))) - 15) / 60 * (maxTone - minTone)) / 100).hex();
}
export function getHueAdjustedColor(a0, a1) {
return Module689(a0).set("hsl.h", a1).hex();
}
@@ -0,0 +1,11 @@
// Metro module 4073 (f4074).
const r9 = {
GUILD_SETTINGS: "guild_settings",
PERK_MODAL: "perk_modal"
};
const r12 = {
GUILD_SETTINGS: "guild_settings",
PREVIEW_PANEL: "preview_panel"
};
export { r9 as GuildThemePreviewOrigin };
export { r12 as GuildThemePreviewOwner };
@@ -0,0 +1,378 @@
// Metro module 4072 (f4073).
import AuthenticationStore from "../../stores/AuthenticationStore";
import * as _GuildThemePreviewConstants from "./GuildThemePreviewConstants";
import { Timeout } from "../../_bundle/Timeout";
import Dispatcher from "../../Dispatcher";
import { cloneGuildThemeSettings, fromServerGuildTheme } from "./guildThemeSerialization";
import * as _Module12 from "../../_bundle/Module12";
import Module589 from "../../_bundle/Module589";
let c2341_4, c2341_5;
const handleEnd = function handleEnd() {
const r1 = c2341_5.guildId == null && !c2341_4.isStarted();
let r8 = !r1;
if (!r1) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r8 = true;
}
return r8;
};
const { GuildThemePreviewOrigin, GuildThemePreviewOwner } = _GuildThemePreviewConstants;
c2341_4 = new Timeout();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
class GuildThemePreviewStore extends Module589.Store {
static displayName = "GuildThemePreviewStore";
initialize() {
this.waitFor(AuthenticationStore);
}
get guildId() {
return c2341_5.guildId;
}
get draft() {
return c2341_5.draft;
}
get original() {
return c2341_5.original;
}
get draftEnabled() {
return c2341_5.draftEnabled;
}
get originalEnabled() {
return c2341_5.originalEnabled;
}
get origin() {
return c2341_5.origin;
}
get owner() {
return c2341_5.owner;
}
get isActive() {
return c2341_5.guildId != null;
}
get isSaving() {
return c2341_5.isSaving;
}
get isAwaitingGuildUpdate() {
return c2341_5.isAwaitingGuildUpdate;
}
get saveError() {
return c2341_5.saveError;
}
hasChanges() {
return c2341_5.guildId != null && (c2341_5.draftEnabled !== c2341_5.originalEnabled || !_Module12.isEqual(c2341_5.draft, c2341_5.original));
}
}
const guildThemePreviewStore = new GuildThemePreviewStore(Dispatcher, {
GUILD_THEME_PREVIEW_START: function handleStart(a0) {
const { guildId: guildId2, draft: draft2, original: original2, draftEnabled: draftEnabled2, originalEnabled: originalEnabled2, origin: origin2 } = a0;
let owner2 = a0.owner;
c2341_4.stop();
const r16 = {
guildId: guildId2,
draft: cloneGuildThemeSettings(draft2),
original: cloneGuildThemeSettings(original2),
draftEnabled: draftEnabled2,
originalEnabled: originalEnabled2,
origin: origin2,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
if (owner2 == null) {
owner2 = c2341_5.owner;
}
r16.owner = owner2;
c2341_5 = r16;
},
GUILD_THEME_PREVIEW_SELECT_PRESET: function handleSelectPreset({ presetId }) {
if (c2341_5.guildId == null) {
return false;
}
const draft2 = {
presetId,
customUserThemeSettings: void 0
};
const isEqual = _Module12.isEqual(c2341_5.draft, draft2);
let r20 = isEqual ? !c2341_5.draftEnabled : !isEqual;
if (r20) {
c2341_4.stop();
c2341_5 = {
...c2341_5,
draft: draft2,
draftEnabled: true,
isAwaitingGuildUpdate: false,
saveError: null
};
r20 = true;
}
return r20;
},
GUILD_THEME_PREVIEW_UPDATE_CUSTOM: function handleUpdateCustom({ colors, gradientAngle, baseMix }) {
if (c2341_5.guildId == null) {
return false;
}
const draft2 = {
presetId: void 0,
customUserThemeSettings: {
colors: [...colors],
gradientColorStops: [],
gradientAngle,
baseMix
}
};
const isEqual = _Module12.isEqual(c2341_5.draft, draft2);
let r27 = isEqual ? !c2341_5.draftEnabled : !isEqual;
if (r27) {
c2341_4.stop();
c2341_5 = {
...c2341_5,
draft: draft2,
draftEnabled: true,
isAwaitingGuildUpdate: false,
saveError: null
};
r27 = true;
}
return r27;
},
GUILD_THEME_PREVIEW_TRANSFER_OWNERSHIP: function handleTransferOwnership({ owner: owner2 }) {
let r10 = c2341_5.guildId != null && c2341_5.owner !== owner2;
if (r10) {
c2341_5 = {
...c2341_5,
owner: owner2
};
r10 = true;
}
return r10;
},
GUILD_THEME_PREVIEW_END: handleEnd,
GUILD_THEME_PREVIEW_SAVE_START: function handleSaveStart() {
c2341_4.stop();
c2341_5 = {
...c2341_5,
isSaving: true,
isAwaitingGuildUpdate: false,
saveError: null
};
},
GUILD_THEME_PREVIEW_SAVE_SUCCESS: function handleSaveSuccess({ guildId: guildId2, guildTheme }) {
if (c2341_5.guildId != null && guildId2 === c2341_5.guildId) {
let r9 = guildTheme?.themeSettings;
if (r9 == null) {
r9 = null;
}
let draftEnabled2 = guildTheme?.enabled;
if (draftEnabled2 == null) {
draftEnabled2 = false;
}
c2341_5 = {
...c2341_5,
draft: cloneGuildThemeSettings(r9),
original: cloneGuildThemeSettings(r9),
draftEnabled: draftEnabled2,
originalEnabled: draftEnabled2,
isSaving: false,
isAwaitingGuildUpdate: true,
saveError: null
};
c2341_4.stop();
c2341_4.start(10000, () => {
if (c2341_5.isAwaitingGuildUpdate) {
Dispatcher.dispatch({
type: "GUILD_THEME_PREVIEW_END"
});
}
});
return true;
}
return false;
},
GUILD_THEME_PREVIEW_SAVE_FAILURE: function handleSaveFailure({ guildId: guildId2, error }) {
let r10 = c2341_5.guildId != null && guildId2 === c2341_5.guildId;
if (r10) {
c2341_4.stop();
c2341_5 = {
...c2341_5,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: error
};
r10 = true;
}
return r10;
},
GUILD_SETTINGS_GUILD_THEME_SAVE_SUCCESS: function handleSettingsSaveSuccess({ guildId: guildId2 }) {
let r0 = c2341_5.guildId != null && guildId2 === c2341_5.guildId;
if (r0) {
const r2 = c2341_5.guildId == null && !c2341_4.isStarted();
let r15 = !r2;
if (!r2) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r15 = true;
}
r0 = r15;
}
return r0;
},
USER_SETTINGS_MODAL_OPEN: handleEnd,
CHANNEL_SELECT: function handleChannelSelect({ guildId: guildId2 }) {
let r0 = c2341_5.guildId != null && guildId2 !== c2341_5.guildId;
if (r0) {
const r1 = c2341_5.guildId == null && !c2341_4.isStarted();
r0 = true;
if (!r1) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r0 = true;
}
}
return r0;
},
GUILD_DELETE: function handleGuildDelete({ guild }) {
let r0 = c2341_5.guildId != null && guild.id === c2341_5.guildId;
if (r0) {
const r1 = c2341_5.guildId == null && !c2341_4.isStarted();
r0 = true;
if (!r1) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r0 = true;
}
}
return r0;
},
GUILD_MEMBER_REMOVE: function handleGuildMemberRemove(a0) {
const guildId2 = a0.guildId;
let r2 = a0.user.id === AuthenticationStore.getId();
if (r2) {
let r0 = c2341_5.guildId != null && guildId2 === c2341_5.guildId;
if (r0) {
const r1 = c2341_5.guildId == null && !c2341_4.isStarted();
r0 = true;
if (!r1) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r0 = true;
}
}
r2 = r0;
}
return r2;
},
GUILD_UPDATE: function handleGuildUpdate({ guild }) {
const isAwaitingGuildUpdate2 = c2341_5.isAwaitingGuildUpdate;
const r0 = (isAwaitingGuildUpdate2 ? c2341_5.guildId == null : !isAwaitingGuildUpdate2) || guild.id !== c2341_5.guildId;
let r17 = !r0;
if (!r0) {
let r19 = guild.theme !== void 0;
if (r19) {
const r24 = fromServerGuildTheme(guild.theme);
let r25 = r24?.enabled;
if (r25 == null) {
r25 = false;
}
let r27 = r24?.themeSettings;
if (r27 == null) {
r27 = null;
}
let r37 = !!(r25 === c2341_5.originalEnabled && _Module12.isEqual(r27, c2341_5.original));
if (r37) {
const r40 = c2341_5.guildId == null && !c2341_4.isStarted();
r37 = true;
if (!r40) {
c2341_4.stop();
c2341_5 = {
guildId: null,
draft: null,
original: null,
draftEnabled: false,
originalEnabled: false,
origin: null,
owner: null,
isSaving: false,
isAwaitingGuildUpdate: false,
saveError: null
};
r37 = true;
}
}
r19 = r37;
}
r17 = r19;
}
return r17;
},
LOGOUT: handleEnd
});
export default guildThemePreviewStore;
export { GuildThemePreviewOrigin };
export { GuildThemePreviewOwner };
+293
View File
@@ -0,0 +1,293 @@
// Metro module 4071 (f4072).
import { useMemo } from "react";
import UserSettingsProtoStore from "../user_settings/UserSettingsProtoStore";
import GuildStore from "../../stores/GuildStore";
import SelectedGuildStore from "../../stores/SelectedGuildStore";
import GuildThemePreviewStore from "./GuildThemePreviewStore";
import GuildThemeRuntimeStore from "./GuildThemeRuntimeStore";
import { GuildFeatures } from "../../Constants";
import { getGuildThemePreset } from "./GuildThemePresets";
import { useStateFromStores } from "../../_bundle/Module589";
import { useServerThemeUserEnabled, getServerThemeUserEnabled } from "../premium/powerups/experiments/ServerThemeUserExperiment";
import { GuildThemeSourcePreference } from "../../flow/Client";
function $mk73548($env) {
return () => {
const r2 = $env;
const r5 = r2[0];
if (r5 != null && r2[1]) {
const r9 = $env.$parent;
const guild = r9[4].getGuild(r5);
if (guild != null && guild.features.has(r9[8].GUILD_THEME)) {
let r16 = r9[7].getGuildThemeSnapshot(r5);
if (r16 === void 0) {
r16 = guild.guildTheme;
}
return r16;
}
return null;
}
return null;
};
}
function $mk73549($env) {
return () => (0, $env.$parent[9])($env[2]);
}
let useActiveGuildThemeForGuildId;
let env2340 = {};
export function resolveSavedActiveGuildTheme(a0) {
let r16;
const enabled = a0?.enabled;
let r3 = null;
if (enabled === true) {
const themeSettings = a0.themeSettings;
const r12 = themeSettings == null;
let r13 = null;
if (!r12) {
const customUserThemeSettings = themeSettings.customUserThemeSettings;
const colors = customUserThemeSettings?.colors;
L11: {
const r15 = colors == null;
r16 = null;
if (!r15) {
const length = customUserThemeSettings.colors.length;
r16 = null;
if (length === 1) {
if (customUserThemeSettings.gradientColorStops != null) {
const r22 = customUserThemeSettings.gradientColorStops.length > 0;
r16 = null;
if (r22) {
break L11;
}
}
r16 = {
type: "custom",
customUserThemeSettings
};
}
}
}
r13 = r16;
if (r13 == null) {
const guildThemePreset = getGuildThemePreset(themeSettings.presetId);
r13 = guildThemePreset != null ? {
type: "preset",
preset: guildThemePreset
} : null;
}
}
r3 = r13;
}
return r3;
}
useActiveGuildThemeForGuildId = function useActiveGuildThemeForGuildId(a0) {
let memo, stateFromStores2;
let r5 = arguments[1];
if (r5 === void 0) {
r5 = "useActiveGuildThemeForGuildId";
}
let env13831;
memo = void 0;
stateFromStores2 = void 0;
const serverThemeUserEnabled = useServerThemeUserEnabled(r5);
const stateFromStores = useStateFromStores([GuildThemePreviewStore], () => {}, [a0, serverThemeUserEnabled]);
const r21 = env13831 = {
$parent: env2340
};
env13831[0] = a0;
env13831[1] = serverThemeUserEnabled;
env13831[2] = void 0;
const stateFromStores3 = useStateFromStores([GuildStore, GuildThemeRuntimeStore], $mk73548(r21), [a0, serverThemeUserEnabled]);
env13831[2] = stateFromStores3;
memo = useMemo($mk73549(r21), [stateFromStores3]);
stateFromStores2 = useStateFromStores([UserSettingsProtoStore], () => a0 != null && serverThemeUserEnabled ? UserSettingsProtoStore.resolveGuildThemeSourcePreference(a0) : GuildThemeSourcePreference.PERSONAL, [a0, serverThemeUserEnabled]);
return useMemo(() => {
let r15, r21;
if (stateFromStores !== void 0) {
const r2 = stateFromStores == null;
let r17 = null;
if (!r2) {
const customUserThemeSettings = stateFromStores.customUserThemeSettings;
const colors = customUserThemeSettings?.colors;
L12: {
const r20 = colors == null;
r21 = null;
if (!r20) {
const length = customUserThemeSettings.colors.length;
r21 = null;
if (length === 1) {
if (customUserThemeSettings.gradientColorStops != null) {
const r27 = customUserThemeSettings.gradientColorStops.length > 0;
r21 = null;
if (r27) {
break L12;
}
}
r21 = {
type: "custom",
customUserThemeSettings
};
}
}
}
r17 = r21;
if (r17 == null) {
const guildThemePreset = getGuildThemePreset(stateFromStores.presetId);
r17 = guildThemePreset != null ? {
type: "preset",
preset: guildThemePreset
} : null;
}
}
r15 = r17;
} else {
r15 = stateFromStores2 !== GuildThemeSourcePreference.PERSONAL ? memo : null;
}
return r15;
}, [memo, stateFromStores2, stateFromStores]);
};
export function resolveRenderableGuildThemeSettings(a0) {
let r9;
if (a0 == null) {
return null;
}
const customUserThemeSettings = a0.customUserThemeSettings;
const colors = customUserThemeSettings?.colors;
L8: {
const r8 = colors == null;
r9 = null;
if (!r8) {
const length = customUserThemeSettings.colors.length;
r9 = null;
if (length === 1) {
if (customUserThemeSettings.gradientColorStops != null) {
const r15 = customUserThemeSettings.gradientColorStops.length > 0;
r9 = null;
if (r15) {
break L8;
}
}
r9 = {
type: "custom",
customUserThemeSettings
};
}
}
}
if (r9 != null) {
return r9;
}
const guildThemePreset = getGuildThemePreset(a0.presetId);
return guildThemePreset != null ? {
type: "preset",
preset: guildThemePreset
} : null;
}
export function isRenderableGuildThemeSettings(a0) {
let r11;
const r2 = a0 == null;
let r4 = null;
if (!r2) {
const customUserThemeSettings = a0.customUserThemeSettings;
const colors = customUserThemeSettings?.colors;
L8: {
const r10 = colors == null;
r11 = null;
if (!r10) {
const length = customUserThemeSettings.colors.length;
r11 = null;
if (length === 1) {
if (customUserThemeSettings.gradientColorStops != null) {
const r17 = customUserThemeSettings.gradientColorStops.length > 0;
r11 = null;
if (r17) {
break L8;
}
}
r11 = {
type: "custom",
customUserThemeSettings
};
}
}
}
r4 = r11;
if (r4 == null) {
const guildThemePreset = getGuildThemePreset(a0.presetId);
r4 = guildThemePreset != null ? {
type: "preset",
preset: guildThemePreset
} : null;
}
}
return r4 != null;
}
export function useEnabledGuildThemeForGuildId(a0, r6 = "useEnabledGuildThemeForGuildId") {
let env13832;
const serverThemeUserEnabled2 = useServerThemeUserEnabled(r6);
const r11 = env13832 = {
$parent: env2340
};
env13832[0] = a0;
env13832[1] = serverThemeUserEnabled2;
env13832[2] = void 0;
const stateFromStores3 = useStateFromStores([GuildStore, GuildThemeRuntimeStore], $mk73548(r11), [a0, serverThemeUserEnabled2]);
env13832[2] = stateFromStores3;
return useMemo($mk73549(r11), [stateFromStores3]);
}
export function getActiveGuildThemeForGuildId(a0, r8 = "getActiveGuildThemeForGuildId") {
if (a0 != null) {
if (getServerThemeUserEnabled(r8)) {
const guild = GuildStore.getGuild(a0);
if (guild != null && guild.features.has(GuildFeatures.GUILD_THEME)) {
if (UserSettingsProtoStore.resolveGuildThemeSourcePreference(a0) === GuildThemeSourcePreference.PERSONAL) {
return null;
}
let r28 = GuildThemeRuntimeStore.getGuildThemeSnapshot(a0);
if (r28 === void 0) {
r28 = guild.guildTheme;
}
return resolveSavedActiveGuildTheme(r28);
}
return null;
}
}
return null;
}
export function getActiveGuildTheme() {
const guildId = SelectedGuildStore.getGuildId();
const r1 = guildId == null;
let r12 = null;
if (!r1) {
const serverThemeUserEnabled2 = getServerThemeUserEnabled("getActiveGuildTheme");
r12 = null;
if (serverThemeUserEnabled2) {
const guild = GuildStore.getGuild(guildId);
const r2 = guild == null;
r12 = null;
if (!r2) {
const r23 = guild.features.has(GuildFeatures.GUILD_THEME);
r12 = null;
if (r23) {
const r26 = UserSettingsProtoStore.resolveGuildThemeSourcePreference(guildId);
const PERSONAL = GuildThemeSourcePreference.PERSONAL;
r12 = null;
if (r26 !== PERSONAL) {
let r33 = GuildThemeRuntimeStore.getGuildThemeSnapshot(guildId);
if (r33 === void 0) {
r33 = guild.guildTheme;
}
r12 = resolveSavedActiveGuildTheme(r33);
}
}
}
}
}
return r12;
}
export { useActiveGuildThemeForGuildId };
export function useActiveGuildTheme() {
return useActiveGuildThemeForGuildId(useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId()), "useActiveGuildTheme");
}
export function useIsGuildThemePreviewActive() {
return useStateFromStores([GuildThemePreviewStore], () => false);
}
@@ -0,0 +1,211 @@
// 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;
@@ -0,0 +1,204 @@
// Metro module 1861 (f1862).
export function cloneGuildThemeSettings(a0) {
const r3 = a0 == null;
let r4 = null;
if (!r3) {
const customUserThemeSettings = a0.customUserThemeSettings;
const r14 = customUserThemeSettings != null;
let customUserThemeSettings2 = void 0;
if (r14) {
const colors = [...customUserThemeSettings.colors];
let gradientColorStops = customUserThemeSettings.gradientColorStops;
if (gradientColorStops == null) {
gradientColorStops = [];
}
customUserThemeSettings2 = {
colors,
gradientColorStops: [...gradientColorStops],
gradientAngle: customUserThemeSettings.gradientAngle,
baseMix: customUserThemeSettings.baseMix
};
}
r4 = {
presetId: a0.presetId,
customUserThemeSettings: customUserThemeSettings2
};
}
return r4;
}
export function cloneGuildTheme(a0) {
const r3 = a0 == null;
let r4 = null;
if (!r3) {
const themeSettings = a0.themeSettings;
const r16 = themeSettings == null;
let themeSettings2 = null;
if (!r16) {
const customUserThemeSettings = themeSettings.customUserThemeSettings;
const r19 = customUserThemeSettings != null;
let customUserThemeSettings2 = void 0;
if (r19) {
const colors = [...customUserThemeSettings.colors];
let gradientColorStops = customUserThemeSettings.gradientColorStops;
if (gradientColorStops == null) {
gradientColorStops = [];
}
customUserThemeSettings2 = {
colors,
gradientColorStops: [...gradientColorStops],
gradientAngle: customUserThemeSettings.gradientAngle,
baseMix: customUserThemeSettings.baseMix
};
}
themeSettings2 = {
presetId: themeSettings.presetId,
customUserThemeSettings: customUserThemeSettings2
};
}
r4 = {
enabled: a0.enabled,
themeSettings: themeSettings2
};
}
return r4;
}
export function toServerGuildThemeSettings(a0) {
let r4;
if (a0 == null) {
r4 = {
preset_id: null,
custom_user_theme_settings: null
};
} else {
let presetId = a0.presetId;
if (presetId == null) {
presetId = null;
}
const customUserThemeSettings = a0.customUserThemeSettings;
const r3 = customUserThemeSettings == null;
let custom_user_theme_settings = null;
if (!r3) {
const colors = [...customUserThemeSettings.colors];
const gradient_color_stops = customUserThemeSettings.gradientColorStops != null ? [...customUserThemeSettings.gradientColorStops] : [];
let gradientAngle = customUserThemeSettings.gradientAngle;
if (gradientAngle == null) {
gradientAngle = 0;
}
let baseMix = customUserThemeSettings.baseMix;
if (baseMix == null) {
baseMix = 0;
}
custom_user_theme_settings = {
colors,
gradient_color_stops,
gradient_angle: gradientAngle,
base_mix: baseMix
};
}
r4 = {
preset_id: presetId,
custom_user_theme_settings
};
}
return r4;
}
export function fromServerGuildThemeSettings(a0) {
let r3;
L14: {
const r2 = a0 == null;
r3 = null;
if (!r2) {
if (a0.preset_id == null) {
const r10 = a0.custom_user_theme_settings == null;
r3 = null;
if (r10) {
break L14;
}
}
const presetId = a0.preset_id == null ? void 0 : a0.preset_id;
const custom_user_theme_settings = a0.custom_user_theme_settings;
const r15 = custom_user_theme_settings != null;
let customUserThemeSettings = void 0;
if (r15) {
let gradient_color_stops = custom_user_theme_settings.gradient_color_stops;
if (gradient_color_stops == null) {
gradient_color_stops = [];
}
let gradient_angle = custom_user_theme_settings.gradient_angle;
if (gradient_angle == null) {
gradient_angle = 0;
}
let base_mix = custom_user_theme_settings.base_mix;
if (base_mix == null) {
base_mix = 0;
}
customUserThemeSettings = {
colors: custom_user_theme_settings.colors,
gradientColorStops: gradient_color_stops,
gradientAngle: gradient_angle,
baseMix: base_mix
};
}
r3 = {
presetId,
customUserThemeSettings
};
}
}
return r3;
}
export function fromServerGuildTheme(a0) {
let r4, themeSettings;
const r2 = a0 == null;
let r3 = null;
if (!r2) {
L15: {
r4 = {
enabled: a0.enabled,
themeSettings: null
};
const r11 = a0 == null;
themeSettings = null;
if (!r11) {
if (a0.preset_id == null) {
const r14 = a0.custom_user_theme_settings == null;
themeSettings = null;
if (r14) {
break L15;
}
}
const presetId = a0.preset_id == null ? void 0 : a0.preset_id;
const custom_user_theme_settings = a0.custom_user_theme_settings;
const r19 = custom_user_theme_settings != null;
let customUserThemeSettings = void 0;
if (r19) {
let gradient_color_stops = custom_user_theme_settings.gradient_color_stops;
if (gradient_color_stops == null) {
gradient_color_stops = [];
}
let gradient_angle = custom_user_theme_settings.gradient_angle;
if (gradient_angle == null) {
gradient_angle = 0;
}
let base_mix = custom_user_theme_settings.base_mix;
if (base_mix == null) {
base_mix = 0;
}
customUserThemeSettings = {
colors: custom_user_theme_settings.colors,
gradientColorStops: gradient_color_stops,
gradientAngle: gradient_angle,
baseMix: base_mix
};
}
themeSettings = {
presetId,
customUserThemeSettings
};
}
}
r4.themeSettings = themeSettings;
r3 = r4;
}
return r3;
}
@@ -0,0 +1,4 @@
// Metro module 4070 (f4071).
import { createContext } from "react";
const context = createContext(void 0);
export default context;
@@ -0,0 +1,169 @@
// Metro module 15134 (f15135).
import { useState, useRef, useEffect, useCallback } from "react";
import { View } from "react-native";
import SelectedGuildStore from "../../../stores/SelectedGuildStore";
import GuildThemeRuntimeStore from "../GuildThemeRuntimeStore";
import { ContentDismissActionType } from "../../dismissible_content/DismissibleContentConstants";
import Logger from "../../debug/Logger";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { getInitialGuildThemeNuxSelection, saveGuildThemeNuxPreference } from "../GuildThemeNuxUtils";
import { GuildThemeSourcePreference } from "../../../flow/Client";
import { useStateFromStores } from "../../../_bundle/Module589";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import { intl, t } from "../../../intl/index.native";
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
import GuildThemeNuxPreviewGraphic from "./GuildThemeNuxPreviewGraphic";
import { Text } from "../../../design/components/Text/native/Text";
import { TableRadioGroup } from "../../../design/components/TableRow/native/TableRadioGroup.native";
import { TableRadioRow } from "../../../design/components/TableRow/native/TableRadioRow.native";
import { HelpMessage, HelpMessageTypes } from "../../../design/void/native";
import { Button } from "../../../design/components/Button/native/Button.native";
let c10735_12 = "GuildThemeNuxActionSheet";
let c10735_13 = new Logger("GuildThemeNuxActionSheet");
const useStyles = createStyles({
container: {
padding: Module712.space.PX_16,
paddingTop: Module712.space.PX_8,
paddingBottom: 0
},
title: {
textAlign: "center",
marginBottom: Module712.space.PX_8
},
description: {
textAlign: "center",
marginBottom: Module712.space.PX_24
},
options: {
marginBottom: Module712.space.PX_12
},
warning: {
marginBottom: Module712.space.PX_12
},
footer: {
gap: Module712.space.PX_8
}
});
export default function GuildThemeNuxActionSheet(props) {
let callback;
const { guildId, markAsDismissed } = props;
callback = void 0;
const styles = useStyles();
const [value, setState] = useState(getInitialGuildThemeNuxSelection);
const [state, setState2] = useState(null);
const [loading, setState3] = useState(false);
const ref = useRef(false);
const isPersonal = value === GuildThemeSourcePreference.PERSONAL;
let c21699_6 = isPersonal;
const stateFromStores = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
const stateFromStores2 = useStateFromStores([GuildThemeRuntimeStore], () => {
const guildThemeSnapshot = GuildThemeRuntimeStore.getGuildThemeSnapshot(guildId);
const r1 = guildThemeSnapshot != null;
let r8 = null;
if (r1) {
const enabled = guildThemeSnapshot.enabled;
r8 = null;
if (enabled) {
let themeSettings = guildThemeSnapshot.themeSettings;
if (themeSettings == null) {
themeSettings = null;
}
r8 = themeSettings;
}
}
return r8;
}, [guildId]);
useEffect(() => {
if (stateFromStores !== guildId) {
ActionSheetActionCreators.hideActionSheet(c10735_12);
}
}, [guildId, stateFromStores]);
const callback2 = useCallback((a0) => {
setState2(null);
setState(a0);
}, []);
callback = useCallback((a0) => {
if (!ref.current) {
ref.current = true;
markAsDismissed(a0);
}
}, [markAsDismissed]);
const callback3 = useCallback(async () => {
let c27949_2;
let c27949_3 = 0;
let c30845_0;
L13: {
try {
if (stateFromStores === guildId) {
setState3(true);
setState2(null);
c27949_3 = 1;
await saveGuildThemeNuxPreference(guildId, c21699_6);
c27949_3 = 0;
ref.current = true;
markAsDismissed(ContentDismissActionType.TAKE_ACTION);
ActionSheetActionCreators.hideActionSheet(c10735_12);
break L13;
}
} catch ($e) {
const r29 = $e;
let r7 = r29;
c27949_2 = r29;
if (c27949_3 !== 0) {
while (true) {
try {
const r85 = c27949_2;
c27949_3 = 0;
c30845_0 = r85;
c10735_13.error("Failed to save guild theme NUX preference", c30845_0);
(0, setState2)(intl.string(t.fEptJP));
(0, setState3)(false);
} catch (r81) {
r7 = r81;
c27949_2 = r81;
if (c27949_3 === 0) {
break;
}
continue;
}
return void 0;
}
}
throw r7;
}
return void 0;
}
}, [guildId, isPersonal, markAsDismissed, stateFromStores]);
const callback4 = useCallback(() => {
callback(ContentDismissActionType.USER_DISMISS);
}, [callback]);
const text = isPersonal ? intl.string(t.cvoikF) : intl.string(t["cY+Oob"]);
return <BottomSheet startExpanded dismissAccessibilityLabel={intl.string(t.cpT0Cq)} onDismiss={callback4} contentStyles={styles.container}>
<GuildThemeNuxPreviewGraphic themeSettings={stateFromStores2} isPersonal={isPersonal} />
<Text accessibilityRole="header" variant="heading-xl/semibold" color="mobile-text-heading-primary" style={styles.title}>
{intl.string(t.Q9zFy9)}
</Text>
<Text variant="text-md/normal" color="text-default" style={styles.description}>
{intl.string(t.XLpBLj)}
</Text>
<View style={styles.options}>
<TableRadioGroup hasIcons={false} value={value} onChange={callback2}>
<TableRadioRow label={intl.string(t.aN3RNQ)} value={GuildThemeSourcePreference.GUILD} />
<TableRadioRow label={intl.string(t.js8y7t)} value={GuildThemeSourcePreference.PERSONAL} />
</TableRadioGroup>
</View>
{isPersonal ? <View style={styles.warning}>
<HelpMessage messageType={HelpMessageTypes.WARNING} borderRadius={Module712.radii.md}>
{intl.string(t.tTHQAy)}
</HelpMessage>
</View> : null}
{state != null ? <View style={styles.warning}>
<HelpMessage messageType={HelpMessageTypes.ERROR} borderRadius={Module712.radii.md}>{state}</HelpMessage>
</View> : null}
<View style={styles.footer}>
<Button text={text} variant={isPersonal ? "secondary" : "primary"} loading={loading} disabled={loading} onPress={callback3} />
</View>
</BottomSheet>;
};
export const GUILD_THEME_NUX_ACTION_SHEET_KEY = "GuildThemeNuxActionSheet";
@@ -0,0 +1,20 @@
// Metro module 15136 (f15137).
import { View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import GuildThemePreviewArt from "./GuildThemePreviewArt";
const useStyles = createStyles({
container: {
width: "100%",
aspectRatio: 1.7777777777777777,
alignItems: "center",
justifyContent: "center",
marginBottom: Module712.space.PX_24
}
});
export default function GuildThemeNuxPreviewGraphic(props) {
const { themeSettings, isPersonal } = props;
return <View accessibilityElementsHidden importantForAccessibility="no-hide-descendants" style={useStyles().container}>
<GuildThemePreviewArt themeSettings={isPersonal ? null : themeSettings} />
</View>;
};
@@ -0,0 +1,81 @@
// Metro module 15137 (f15138).
import { useMemo } from "react";
import { View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { getSingleColorGuildThemeGradientColors, getGuildThemePreset, getGuildThemePresetAppearance } from "../GuildThemePresets";
import GuildThemePreviewOverlay from "./GuildThemePreviewOverlay";
import useTheme from "../../../hooks/useTheme";
import Module4611 from "../../../_bundle/Module4611";
let useStyles;
const PreviewOverlay = function PreviewOverlay() {
return <View pointerEvents="none" style={useStyles().previewOverlay}>
<GuildThemePreviewOverlay />
</View>;
};
useStyles = createStyles({
previewArt: {
position: "relative",
width: 256,
aspectRatio: 1.5705521472392638,
overflow: "hidden",
borderRadius: Module712.radii.md,
backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH
},
previewOverlay: {
position: "absolute",
top: 7.314,
left: 7.461,
width: 259.862,
height: 154.514
}
});
export default function GuildThemePreviewArt(props) {
const { themeSettings, style } = props;
const styles = useStyles();
const theme = useTheme();
let c21700_1 = theme;
const memo = useMemo(() => {
let r17;
L8: {
const r2 = themeSettings == null;
r17 = null;
if (!r2) {
const customUserThemeSettings = themeSettings.customUserThemeSettings;
if (customUserThemeSettings != null) {
const r10 = customUserThemeSettings.colors[0];
if (r10 != null) {
const colors = [...getSingleColorGuildThemeGradientColors(r10, c21700_1)];
let gradientAngle = customUserThemeSettings.gradientAngle;
if (gradientAngle == null) {
gradientAngle = 0;
}
r17 = {
colors,
angle: gradientAngle
};
break L8;
}
}
const guildThemePreset = getGuildThemePreset(themeSettings.presetId);
const r4 = guildThemePreset != null;
r17 = null;
if (r4) {
const guildThemePresetAppearance = getGuildThemePresetAppearance(guildThemePreset, c21700_1);
r17 = {
colors: guildThemePresetAppearance.colors.map((color) => color.hex),
locations: guildThemePresetAppearance.colors.map((color) => color.stop / 100),
angle: guildThemePresetAppearance.angle
};
}
}
}
return r17;
}, [themeSettings, theme]);
const style2 = [styles.previewArt, style];
return memo == null ? <View style={style2}>
<PreviewOverlay />
</View> : <Module4611 colors={memo.colors} locations={memo.locations} useAngle angle={memo.angle} style={style2}>
<PreviewOverlay />
</Module4611>;
};
@@ -0,0 +1,46 @@
// Metro module 15138 (f15139).
import Module8531, { G, Path } from "../../../_bundle/Module8531";
export default function GuildThemePreviewOverlay(props) {
return <Module8531 {...props} preserveAspectRatio="none" width="100%" height="100%" viewBox="0 0 259.862 154.514" fill="none">
<G>
<Path d="M20.8821 7.1867C20.8821 3.21759 24.0659 0 27.9932 0H84.8821V154.514H20.8821V7.1867Z" fill="black" fillOpacity="0.1" />
<Path d="M248.055 0.225335H85.0491V154.266H248.055V0.225335Z" fill="black" fillOpacity="0.25" />
<G opacity="0.2">
<Path d="M99.2224 43.2126C103.136 43.2126 106.31 40.0048 106.31 36.0479C106.31 32.091 103.136 28.8832 99.2224 28.8832C95.3082 28.8832 92.1351 32.091 92.1351 36.0479C92.1351 40.0048 95.3082 43.2126 99.2224 43.2126Z" fill="white" />
<Path d="M125.795 31.1038H112.802C111.824 31.1038 111.031 31.9059 111.031 32.8951C111.031 33.8842 111.824 34.6863 112.802 34.6863H125.795C126.774 34.6863 127.567 33.8842 127.567 32.8951C127.567 31.9059 126.774 31.1038 125.795 31.1038Z" fill="white" />
<Path d="M111.031 39.7954C111.031 39.1359 111.559 38.6011 112.212 38.6011H163.004C163.656 38.6011 164.185 39.1359 164.185 39.7954C164.185 40.4547 163.656 40.9895 163.004 40.9895H112.212C111.559 40.9895 111.031 40.4547 111.031 39.7954Z" fill="white" />
<Path d="M99.2224 67.095C103.136 67.095 106.31 63.8872 106.31 59.9303C106.31 55.9734 103.136 52.7656 99.2224 52.7656C95.3082 52.7656 92.1351 55.9734 92.1351 59.9303C92.1351 63.8872 95.3082 67.095 99.2224 67.095Z" fill="white" />
<Path d="M130.52 54.9867H112.802C111.824 54.9867 111.031 55.7886 111.031 56.7777C111.031 57.7671 111.824 58.569 112.802 58.569H130.52C131.499 58.569 132.292 57.7671 132.292 56.7777C132.292 55.7886 131.499 54.9867 130.52 54.9867Z" fill="white" />
<Path d="M111.031 63.6776C111.031 63.0181 111.559 62.4833 112.212 62.4833H137.017C137.67 62.4833 138.198 63.0181 138.198 63.6776C138.198 64.3369 137.67 64.8717 137.017 64.8717H112.212C111.559 64.8717 111.031 64.3369 111.031 63.6776Z" fill="white" />
<Path d="M99.2224 90.9774C103.136 90.9774 106.31 87.7696 106.31 83.8127C106.31 79.8558 103.136 76.6481 99.2224 76.6481C95.3082 76.6481 92.1351 79.8558 92.1351 83.8127C92.1351 87.7696 95.3082 90.9774 99.2224 90.9774Z" fill="white" />
<Path d="M143.514 78.8689H112.802C111.824 78.8689 111.031 79.671 111.031 80.6601C111.031 81.6493 111.824 82.4514 112.802 82.4514H143.514C144.492 82.4514 145.286 81.6493 145.286 80.6601C145.286 79.671 144.492 78.8689 143.514 78.8689Z" fill="white" />
<Path d="M111.031 87.5598C111.031 86.9005 111.559 86.3657 112.212 86.3657H158.279C158.931 86.3657 159.46 86.9005 159.46 87.5598C159.46 88.2193 158.931 88.7541 158.279 88.7541H112.212C111.559 88.7541 111.031 88.2193 111.031 87.5598Z" fill="white" />
</G>
<Path opacity="0.2" d="M76.1873 8.28431H28.9391C28.4497 8.28431 28.0532 8.68527 28.0532 9.1799C28.0532 9.67453 28.4497 10.0755 28.9391 10.0755H76.1873C76.6765 10.0755 77.0733 9.67453 77.0733 9.1799C77.0733 8.68527 76.6765 8.28431 76.1873 8.28431Z" fill="#D9D9D9" />
<Path opacity="0.2" d="M141.155 8.28431H93.9068C93.4174 8.28431 93.0208 8.68527 93.0208 9.1799C93.0208 9.67453 93.4174 10.0755 93.9068 10.0755H141.155C141.644 10.0755 142.041 9.67453 142.041 9.1799C142.041 8.68527 141.644 8.28431 141.155 8.28431Z" fill="#D9D9D9" />
<Path opacity="0.2" d="M9.44965 3.80698H4.72483C2.11537 3.80698 0 5.94547 0 8.58343V13.3599C0 15.9979 2.11537 18.1363 4.72483 18.1363H9.44965C12.0591 18.1363 14.1745 15.9979 14.1745 13.3599V8.58343C14.1745 5.94547 12.0591 3.80698 9.44965 3.80698Z" fill="white" />
<Path opacity="0.2" d="M13.5839 24.1077H0.590606C0.264409 24.1077 0 24.375 0 24.7049C0 25.0345 0.264409 25.3018 0.590606 25.3018H13.5839C13.91 25.3018 14.1745 25.0345 14.1745 24.7049C14.1745 24.375 13.91 24.1077 13.5839 24.1077Z" fill="white" fillOpacity="0.55" />
<Path opacity="0.2" d="M9.44965 31.2709H4.72483C2.11537 31.2709 0 33.4096 0 36.0474V40.8239C0 43.4618 2.11537 45.6005 4.72483 45.6005H9.44965C12.0591 45.6005 14.1745 43.4618 14.1745 40.8239V36.0474C14.1745 33.4096 12.0591 31.2709 9.44965 31.2709Z" fill="white" />
<Path opacity="0.5" d="M9.44965 51.5718H4.72483C2.11537 51.5718 0 53.7103 0 56.3481V61.1246C0 63.7627 2.11537 65.9012 4.72483 65.9012H9.44965C12.0591 65.9012 14.1745 63.7627 14.1745 61.1246V56.3481C14.1745 53.7103 12.0591 51.5718 9.44965 51.5718Z" fill="white" />
<Path opacity="0.05" d="M259.862 18.1359H21.2575V19.3299H259.862V18.1359Z" fill="white" />
<G opacity="0.2">
<Path d="M44.2994 29.7789H30.1249C29.6356 29.7789 29.239 30.18 29.239 30.6745C29.239 31.1692 29.6356 31.5701 30.1249 31.5701H44.2994C44.7885 31.5701 45.1853 31.1692 45.1853 30.6745C45.1853 30.18 44.7885 29.7789 44.2994 29.7789Z" fill="white" stroke="white" strokeWidth="0.723776" />
<Path d="M33.6659 47.9852C36.6001 47.9852 38.9791 45.5804 38.9791 42.6139C38.9791 39.6474 36.6001 37.2427 33.6659 37.2427C30.7315 37.2427 28.3528 39.6474 28.3528 42.6139C28.3528 45.5804 30.7315 47.9852 33.6659 47.9852Z" fill="white" />
<Path d="M59.6471 41.7178H45.4727C44.9833 41.7178 44.5868 42.1187 44.5868 42.6132C44.5868 43.1079 44.9833 43.5088 45.4727 43.5088H59.6471C60.1363 43.5088 60.5331 43.1079 60.5331 42.6132C60.5331 42.1187 60.1363 41.7178 59.6471 41.7178Z" fill="white" stroke="white" strokeWidth="0.723776" />
<Path d="M33.6659 63.5031C36.6001 63.5031 38.9791 61.0984 38.9791 58.1319C38.9791 55.1654 36.6001 52.7607 33.6659 52.7607C30.7315 52.7607 28.3528 55.1654 28.3528 58.1319C28.3528 61.0984 30.7315 63.5031 33.6659 63.5031Z" fill="white" />
<Path d="M73.8216 57.2358H45.4727C44.9833 57.2358 44.5868 57.6367 44.5868 58.1314C44.5868 58.6259 44.9833 59.0268 45.4727 59.0268H73.8216C74.311 59.0268 74.7075 58.6259 74.7075 58.1314C74.7075 57.6367 74.311 57.2358 73.8216 57.2358Z" fill="white" stroke="white" strokeWidth="0.723776" />
<Path d="M33.6659 79.0211C36.6001 79.0211 38.9791 76.6164 38.9791 73.6499C38.9791 70.6836 36.6001 68.2787 33.6659 68.2787C30.7315 68.2787 28.3528 70.6836 28.3528 73.6499C28.3528 76.6164 30.7315 79.0211 33.6659 79.0211Z" fill="white" />
<Path d="M67.9155 72.7538H45.4727C44.9833 72.7538 44.5868 73.1547 44.5868 73.6494C44.5868 74.1438 44.9833 74.5448 45.4727 74.5448H67.9155C68.4049 74.5448 68.8015 74.1438 68.8015 73.6494C68.8015 73.1547 68.4049 72.7538 67.9155 72.7538Z" fill="white" stroke="white" strokeWidth="0.723776" />
</G>
<Path d="M73.2348 124.413H4.72483C2.11537 124.413 0 126.551 0 129.189V143.519C0 146.157 2.11537 148.295 4.72483 148.295H73.2348C75.8444 148.295 77.9597 146.157 77.9597 143.519V129.189C77.9597 126.551 75.8444 124.413 73.2348 124.413Z" fill="white" fillOpacity="0.08" />
<Path opacity="0.3" d="M11.8111 143.518C15.7253 143.518 18.8983 140.31 18.8983 136.353C18.8983 132.396 15.7253 129.188 11.8111 129.188C7.89693 129.188 4.72387 132.396 4.72387 136.353C4.72387 140.31 7.89693 143.518 11.8111 143.518Z" fill="white" />
<G opacity="0.3">
<Path d="M56.1027 131.209H25.3914C24.4127 131.209 23.6196 132.011 23.6196 133C23.6196 133.989 24.4127 134.791 25.3914 134.791H56.1027C57.0811 134.791 57.8745 133.989 57.8745 133C57.8745 132.011 57.0811 131.209 56.1027 131.209Z" fill="white" />
<Path d="M44.2905 137.918H25.3914C24.4127 137.918 23.6196 138.72 23.6196 139.709C23.6196 140.698 24.4127 141.5 25.3914 141.5H44.2905C45.2693 141.5 46.0624 140.698 46.0624 139.709C46.0624 138.72 45.2693 137.918 44.2905 137.918Z" fill="white" />
</G>
<G opacity="0.5">
<Path d="M235.061 124.413H98.041C94.779 124.413 92.1349 127.086 92.1349 130.383V142.324C92.1349 145.622 94.779 148.295 98.041 148.295H235.061C238.322 148.295 240.966 145.622 240.966 142.324V130.383C240.966 127.086 238.322 124.413 235.061 124.413Z" fill="white" fillOpacity="0.08" />
</G>
</G>
</Module8531>;
};
@@ -0,0 +1,17 @@
// Metro module 15133 (f15134).
import { useCallback } from "react";
import ActionSheetStore from "../../action_sheet/native/ActionSheetStore";
import { useStateFromStores } from "../../../_bundle/Module589";
import { GUILD_THEME_NUX_ACTION_SHEET_KEY } from "./GuildThemeNuxActionSheet";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import useGuildThemeNuxTrigger2 from "../useGuildThemeNuxTrigger";
export default function useGuildThemeNuxTrigger(a0) {
useGuildThemeNuxTrigger2(a0, {
isNuxOpen: useStateFromStores([ActionSheetStore], () => ActionSheetStore.getKey() === GUILD_THEME_NUX_ACTION_SHEET_KEY),
openNux: useCallback((a0) => {
const r13 = import("./GuildThemeNuxActionSheet");
ActionSheetActionCreators.openLazy(r13, GUILD_THEME_NUX_ACTION_SHEET_KEY, a0, "stack");
return r13;
}, [])
});
};
@@ -0,0 +1,119 @@
// Metro module 4039 (f4040).
import { useContext, useState, useEffect } from "react";
import { ME } from "../../../Constants";
import { coerceMainRoute } from "../../main_tabs_v2/helpers/NavigationRouteUtils.native";
import { getRootNavigationRef } from "../../main_tabs_v2/RootNavigationRef.native";
import GuildThemeGuildIdOverrideContext from "./GuildThemeGuildIdOverrideContext";
import { useActiveGuildThemeForGuildId } from "../GuildThemeResolver";
let getActiveGuildThemeGuildIdSnapshot;
const getGuildIdFromNavigationState = function getGuildIdFromNavigationState(a0) {
if (a0 != null) {
const routes = a0.routes;
if (routes != null) {
const r6 = routes[a0.index];
let r9 = r6 == null ? void 0 : r6.params?.guildId;
if (r9 == null) {
r9 = getGuildIdFromNavigationState(r6?.state);
}
return r9;
}
}
};
getActiveGuildThemeGuildIdSnapshot = function getActiveGuildThemeGuildIdSnapshot() {
const rootNavigationRef = getRootNavigationRef();
if (rootNavigationRef != null && rootNavigationRef.isReady()) {
const rootState = rootNavigationRef.getRootState();
const r3 = rootState != null;
let r20 = void 0;
if (r3) {
const routes = rootState.routes;
const r21 = routes != null;
r20 = void 0;
if (r21) {
const r23 = routes[rootState.index];
let r25 = r23 == null ? void 0 : r23.params?.guildId;
if (r25 == null) {
const state = r23?.state;
const r29 = state != null;
let r30 = void 0;
if (r29) {
const routes2 = state.routes;
const r31 = routes2 != null;
r30 = void 0;
if (r31) {
const r14 = routes2[state.index];
let r34 = r14 == null ? void 0 : r14.params?.guildId;
if (r34 == null) {
r34 = getGuildIdFromNavigationState(r14?.state);
}
r30 = r34;
}
}
r25 = r30;
}
r20 = r25;
}
}
if (r20 == null) {
const r39 = rootState == null;
let r40 = void 0;
if (!r39) {
const routes3 = rootState.routes;
r40 = routes3 == null ? void 0 : routes3.map(coerceMainRoute).find((item) => item != null);
}
const state2 = r40?.state;
const r52 = state2 != null;
let r53 = void 0;
if (r52) {
const routes4 = state2.routes;
const r55 = routes4 != null;
r53 = void 0;
if (r55) {
const r57 = routes4[state2.index];
let r59 = r57 == null ? void 0 : r57.params?.guildId;
if (r59 == null) {
const state3 = r57?.state;
const r64 = state3 != null;
let r65 = void 0;
if (r64) {
const routes5 = state3.routes;
const r67 = routes5 != null;
r65 = void 0;
if (r67) {
const r69 = routes5[state3.index];
let r71 = r69 == null ? void 0 : r69.params?.guildId;
if (r71 == null) {
r71 = getGuildIdFromNavigationState(r69?.state);
}
r65 = r71;
}
}
r59 = r65;
}
r53 = r59;
}
}
r20 = r53;
}
return r20 == null ? null : r20 !== ME ? r20 : null;
}
return null;
};
export default function useRoutedActiveGuildTheme() {
const context = useContext(GuildThemeGuildIdOverrideContext);
let [state, setState] = useState(getActiveGuildThemeGuildIdSnapshot);
useEffect(() => {
const rootNavigationRef = getRootNavigationRef();
if (rootNavigationRef != null) {
const handleStateChange = function handleStateChange() {
setState(getActiveGuildThemeGuildIdSnapshot());
};
setState(getActiveGuildThemeGuildIdSnapshot());
return rootNavigationRef.addListener("state", handleStateChange);
}
}, []);
if (context !== void 0) {
state = context !== ME ? context : null;
}
return useActiveGuildThemeForGuildId(state);
};
@@ -0,0 +1,39 @@
// Metro module 15139 (f15140).
import { useRef, useEffect } from "react";
import { DismissibleContentGroupName } from "../dismissible_content/DismissibleContentConstants";
import { useEnabledGuildThemeForGuildId } from "./GuildThemeResolver";
import { useSelectedDismissibleContent } from "../dismissible_content/hooks/useSelectedDismissibleContent";
import { DismissibleContent } from "../../_bundle/Module1358";
export default function useGuildThemeNuxTrigger(a0, a1) {
const guildId = a0;
const { isNuxOpen, openNux } = a1;
const [r31, r32] = useSelectedDismissibleContent(useEnabledGuildThemeForGuildId(a0, "GuildThemeNuxTrigger") != null ? [DismissibleContent.GUILD_THEME_NUX] : [], DismissibleContentGroupName.GUILD_THEME_NUX);
let c21701_3 = r32;
const r37 = r31 === DismissibleContent.GUILD_THEME_NUX;
let c21701_4 = r37;
const ref = useRef(false);
useEffect(() => {
ref.current = false;
}, [a0]);
useEffect(() => {
if (c21701_4 && !isNuxOpen && !ref.current) {
let c27951_0 = setTimeout(() => {
ref.current = true;
let c30847_0 = false;
Promise.resolve(openNux({
guildId,
markAsDismissed: (a0) => {
if (!c30847_0) {
c30847_0 = true;
c21701_3(a0, true);
}
}
})).catch(() => {
ref.current = false;
});
}, 2000);
return () => clearTimeout(c27951_0);
}
}, [r37, isNuxOpen, a0, r32, openNux]);
};
export const GUILD_THEME_NUX_DELAY_MS = 2000;