Files
discord-decomp/modules/user_profile/hooks/useProfileThemeOverrideStore.tsx
T
2026-11-01 12:12:55 +02:00

72 lines
2.1 KiB
TypeScript

// Metro module 8078 (f8079).
import { ThemeTypes } from "../../../Constants";
import { create } from "../../../_bundle/Module644";
import useTheme from "../../../hooks/useTheme";
import { getProfileTheme } from "../UserProfileGradientUtils";
import { isThemeDark, isThemeLight } from "../../../design/shared";
let c5123_4 = create()((c16237_0) => ({
themeOverride: null,
savedClientTheme: null,
setThemeOverride: (a0) => c16237_0({
themeOverride: a0
}),
setSavedClientTheme: (a0) => c16237_0({
savedClientTheme: a0
})
}));
export { c5123_4 as useProfileThemeOverrideStore };
export function useEffectiveThemeOverride() {
let r8, primaryColor, secondaryColor;
const r14 = c5123_4((a0) => a0.themeOverride);
const theme = useTheme();
if (r14 == null) {
return null;
}
if (r14.mode === "nitro") {
const themeColors = r14.themeColors;
let r6 = themeColors == null ? void 0 : themeColors[0];
if (r6 == null) {
r6 = null;
}
const themeColors2 = r14.themeColors;
let r23 = themeColors2 == null ? void 0 : themeColors2[1];
if (r23 == null) {
r23 = null;
}
let r24 = theme;
if (r6 != null) {
r24 = theme;
if (r23 != null) {
let r27 = getProfileTheme(r6);
if (r27 == null) {
r27 = theme;
}
r24 = r27;
}
}
r8 = r24;
secondaryColor = r23;
primaryColor = r6;
} else {
r8 = r14.themeType;
if (r8 == null) {
r8 = theme;
}
secondaryColor = null;
primaryColor = null;
}
return {
theme: r8 === ThemeTypes.DARK ? isThemeDark(theme) ? theme : r8 === ThemeTypes.DARK && isThemeLight(theme) ? ThemeTypes.DARKER : r8 : r8 === ThemeTypes.DARK && isThemeLight(theme) ? ThemeTypes.DARKER : r8,
primaryColor,
secondaryColor
};
}
export function useIsBannerDisabledByOverride() {
const r7 = c5123_4((a0) => a0.themeOverride);
return r7 != null && (r7.mode === "non-nitro" || r7.disableBanner === true);
}
export function useHasNonNitroThemeOverride() {
const r5 = c5123_4((a0) => a0.themeOverride);
return r5 != null && r5.mode === "non-nitro";
}