GoonCord/src/lib/fixes.ts
2023-03-08 20:50:15 +00:00

33 lines
No EOL
1.2 KiB
TypeScript

import { FluxDispatcher, moment } from "@metro/common";
import { findByProps, findByStoreName } from "@metro/filters";
import logger from "@lib/logger";
const ThemeManager = findByProps("updateTheme", "overrideTheme");
const AMOLEDThemeManager = findByProps("setAMOLEDThemeEnabled");
const ThemeStore = findByStoreName("ThemeStore");
const UnsyncedUserSettingsStore = findByStoreName("UnsyncedUserSettingsStore");
function onDispatch({ locale }: { locale: string }) {
// Theming
// Based on https://github.com/Aliucord/AliucordRN/blob/main/src/ui/patchTheme.ts
try {
const theme = ThemeStore.theme || "dark";
ThemeManager.overrideTheme(theme);
if (AMOLEDThemeManager && UnsyncedUserSettingsStore.useAMOLEDTheme === 2) AMOLEDThemeManager.setAMOLEDThemeEnabled(true);
} catch(e) {
logger.error("Failed to fix theme...", e);
}
// Timestamps
try {
// TODO: Test if this works with all locales
moment.locale(locale.toLowerCase());
} catch(e) {
logger.error("Failed to fix timestamps...", e);
}
// We're done here!
FluxDispatcher.unsubscribe("I18N_LOAD_SUCCESS", onDispatch);
}
export default () => FluxDispatcher.subscribe("I18N_LOAD_SUCCESS", onDispatch);