fix: Adjust tabs and toaster hooks to work on react 18, also half-fix Valve Internal

This commit is contained in:
AAGaming
2023-12-12 22:21:25 -05:00
parent 87d7e15951
commit 5fd5b2f08c
6 changed files with 52 additions and 35 deletions
+28 -20
View File
@@ -9,32 +9,40 @@ const logger = new Logger('DeveloperMode');
let removeSettingsObserver: () => void = () => {};
export async function setShowValveInternal(show: boolean) {
let settingsMod: any;
while (!settingsMod) {
settingsMod = findModuleChild((m) => {
if (typeof m !== 'object') return undefined;
for (let prop in m) {
if (typeof m[prop]?.settings?.bIsValveEmail !== 'undefined') return m[prop];
}
});
if (!settingsMod) {
logger.debug('[ValveInternal] waiting for settingsMod');
await sleep(1000);
}
declare global {
interface Window {
settingsStore: any;
}
}
export async function setShowValveInternal(show: boolean) {
if (show) {
removeSettingsObserver = settingsMod[
Object.getOwnPropertySymbols(settingsMod).find((x) => x.toString() == 'Symbol(mobx administration)') as any
].observe((e: any) => {
e.newValue.bIsValveEmail = true;
});
settingsMod.m_Settings.bIsValveEmail = true;
const mobx =
window.settingsStore[
Object.getOwnPropertySymbols(window.settingsStore).find(
(x) => x.toString() == 'Symbol(mobx administration)',
) as any
];
if (mobx.observe_) {
// New style, currently broken
logger.log('Valve internal not yet supported on this build.');
// removeSettingsObserver = mobx.observe_(mobx, [(e: any) => {
// console.log("got e", e)
// e.newValue.bIsValveEmail = true;
// }]);
} else if (mobx.observe) {
// Old style
removeSettingsObserver = mobx.observe((e: any) => {
e.newValue.bIsValveEmail = true;
});
}
window.settingsStore.m_Settings.bIsValveEmail = true;
logger.log('Enabled Valve Internal menu');
} else {
removeSettingsObserver();
settingsMod.m_Settings.bIsValveEmail = false;
window.settingsStore.m_Settings.bIsValveEmail = false;
logger.log('Disabled Valve Internal menu');
}
}