[UI] Fix You tab settings on 189.4+ (#118)
* [UI] Fix You tab settings on 189.4+ * [UI > YouTab] Formatting --------- Co-authored-by: Beef <beefers@riseup.net>
This commit is contained in:
parent
d0f88156e6
commit
cf09dbc1ac
2 changed files with 17 additions and 6 deletions
|
@ -1,11 +1,10 @@
|
||||||
import { findByProps } from "@metro/filters";
|
|
||||||
import patchPanels from "@ui/settings/patches/panels";
|
import patchPanels from "@ui/settings/patches/panels";
|
||||||
import patchYou from "@ui/settings/patches/you";
|
import patchYou from "@ui/settings/patches/you";
|
||||||
|
|
||||||
export default function initSettings() {
|
export default function initSettings() {
|
||||||
const patches = [
|
const patches = [
|
||||||
patchPanels(),
|
patchPanels(),
|
||||||
...(findByProps("getSettingSearchListItems") ? [patchYou()] : []),
|
patchYou(),
|
||||||
]
|
]
|
||||||
|
|
||||||
return () => patches.forEach(p => p());
|
return () => patches.forEach(p => p());
|
||||||
|
|
|
@ -5,10 +5,21 @@ import { getRenderableScreens, getScreens, getYouData } from "@ui/settings/data"
|
||||||
|
|
||||||
const layoutModule = findByProps("useOverviewSettings");
|
const layoutModule = findByProps("useOverviewSettings");
|
||||||
const titleConfigModule = findByProps("getSettingTitleConfig");
|
const titleConfigModule = findByProps("getSettingTitleConfig");
|
||||||
const gettersModule = findByProps("getSettingSearchListItems");
|
|
||||||
const miscModule = findByProps("SETTING_RELATIONSHIPS", "SETTING_RENDERER_CONFIGS");
|
const miscModule = findByProps("SETTING_RELATIONSHIPS", "SETTING_RENDERER_CONFIGS");
|
||||||
|
|
||||||
|
// Checks for 189.4 and above
|
||||||
|
// When dropping support for 189.3 and below, following can be done: (unless Discord changes things again)
|
||||||
|
// const gettersModule = findByProps("getSettingListItems");
|
||||||
|
const OLD_GETTER_FUNCTION = "getSettingSearchListItems";
|
||||||
|
const NEW_GETTER_FUNCTION = "getSettingListItems";
|
||||||
|
const oldGettersModule = findByProps(OLD_GETTER_FUNCTION);
|
||||||
|
const usingNewGettersModule = !oldGettersModule;
|
||||||
|
const getterFunctionName = usingNewGettersModule ? NEW_GETTER_FUNCTION : OLD_GETTER_FUNCTION;
|
||||||
|
const gettersModule = oldGettersModule ?? findByProps(NEW_GETTER_FUNCTION);
|
||||||
|
|
||||||
export default function patchYou() {
|
export default function patchYou() {
|
||||||
|
if (!gettersModule) return;
|
||||||
|
|
||||||
const patches = new Array<Function>;
|
const patches = new Array<Function>;
|
||||||
const screens = getScreens(true);
|
const screens = getScreens(true);
|
||||||
const renderableScreens = getRenderableScreens(true);
|
const renderableScreens = getRenderableScreens(true);
|
||||||
|
@ -29,7 +40,7 @@ export default function patchYou() {
|
||||||
...data.titleConfig,
|
...data.titleConfig,
|
||||||
})));
|
})));
|
||||||
|
|
||||||
patches.push(after("getSettingSearchListItems", gettersModule, ([settings], ret) => [
|
patches.push(after(getterFunctionName, gettersModule, ([settings], ret) => [
|
||||||
...(renderableScreens.filter(s => settings.includes(s.key))).map(s => ({
|
...(renderableScreens.filter(s => settings.includes(s.key))).map(s => ({
|
||||||
type: "setting_search_result",
|
type: "setting_search_result",
|
||||||
ancestorRendererData: data.rendererConfigs[s.key],
|
ancestorRendererData: data.rendererConfigs[s.key],
|
||||||
|
@ -38,7 +49,8 @@ export default function patchYou() {
|
||||||
breadcrumbs: ["Vendetta"],
|
breadcrumbs: ["Vendetta"],
|
||||||
icon: data.rendererConfigs[s.key].icon,
|
icon: data.rendererConfigs[s.key].icon,
|
||||||
})),
|
})),
|
||||||
...ret.filter((i: any) => !screens.map(s => s.key).includes(i.setting)),
|
// .filter can be removed when dropping support for 189.3 and below (unless Discord changes things again)
|
||||||
|
...ret.filter((i: any) => (usingNewGettersModule || !screens.map(s => s.key).includes(i.setting)))
|
||||||
].map((item, index, parent) => ({ ...item, index, total: parent.length }))));
|
].map((item, index, parent) => ({ ...item, index, total: parent.length }))));
|
||||||
|
|
||||||
// TODO: We could use a proxy for these
|
// TODO: We could use a proxy for these
|
||||||
|
@ -53,4 +65,4 @@ export default function patchYou() {
|
||||||
miscModule.SETTING_RENDERER_CONFIGS = oldRendererConfigs;
|
miscModule.SETTING_RENDERER_CONFIGS = oldRendererConfigs;
|
||||||
patches.forEach(p => p());
|
patches.forEach(p => p());
|
||||||
};
|
};
|
||||||
}
|
}
|
Loading…
Reference in a new issue