summaryrefslogtreecommitdiff
path: root/frontend/src/developer.tsx
diff options
context:
space:
mode:
authorAAGaming <aagaming@riseup.net>2023-12-12 22:21:25 -0500
committerAAGaming <aagaming@riseup.net>2023-12-29 18:40:52 -0500
commit5fd5b2f08cd39a26eecab8901c1d39020c056ac1 (patch)
treec63c493cf26d3143d89e0b8645327149e201bd4d /frontend/src/developer.tsx
parent87d7e15951232ace425e5107df2300ba8baf749a (diff)
downloaddecky-loader-5fd5b2f08cd39a26eecab8901c1d39020c056ac1.tar.gz
decky-loader-5fd5b2f08cd39a26eecab8901c1d39020c056ac1.zip
fix: Adjust tabs and toaster hooks to work on react 18, also half-fix Valve Internal
Diffstat (limited to 'frontend/src/developer.tsx')
-rw-r--r--frontend/src/developer.tsx48
1 files changed, 28 insertions, 20 deletions
diff --git a/frontend/src/developer.tsx b/frontend/src/developer.tsx
index 8bd09812..fef29a0e 100644
--- a/frontend/src/developer.tsx
+++ b/frontend/src/developer.tsx
@@ -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');
}
}