summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAAGaming <aagaming@riseup.net>2026-03-20 22:08:44 -0400
committerGitHub <noreply@github.com>2026-03-20 22:08:44 -0400
commitb97c27aac4b9ba9a81cda972e65757ec29fa9066 (patch)
treebfb7b24476819b8e5d7d436bd54b01835a6bb0fe
parent8b8a1cc4d809a423ac4b9155bdaad25099f1aafd (diff)
downloaddecky-loader-3.2.2-pre1.tar.gz
decky-loader-3.2.2-pre1.zip
Fixes for march 19th 2026 beta (#890)HEADv3.2.2-pre1main
-rw-r--r--frontend/package.json2
-rw-r--r--frontend/pnpm-lock.yaml10
-rw-r--r--frontend/src/index.ts10
-rw-r--r--frontend/src/tabs-hook.tsx25
4 files changed, 31 insertions, 16 deletions
diff --git a/frontend/package.json b/frontend/package.json
index ce311043..4bf536e2 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -47,7 +47,7 @@
}
},
"dependencies": {
- "@decky/ui": "^4.11.1",
+ "@decky/ui": "^4.11.2",
"compare-versions": "^6.1.1",
"filesize": "^10.1.2",
"i18next": "^25.6.0",
diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml
index 22ca7d64..384826f6 100644
--- a/frontend/pnpm-lock.yaml
+++ b/frontend/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@decky/ui':
- specifier: ^4.11.1
- version: 4.11.1
+ specifier: ^4.11.2
+ version: 4.11.2
compare-versions:
specifier: ^6.1.1
version: 6.1.1
@@ -222,8 +222,8 @@ packages:
'@decky/api@1.1.3':
resolution: {integrity: sha512-XsPCZxfxk5I1UtylIUN3qaWQI31siQbKfbLIskkI5innEatY1m4NQqBv/6hwPaO9mKMbdqYpnh5PSJDeMEOOBA==}
- '@decky/ui@4.11.1':
- resolution: {integrity: sha512-+x+rJB0MBQSQGp0UpsRJ4BOv7zlHzcBPT76enopjGf56H41beR8VZua9F4upLtDgPku4Zh8z3uB53nFlvTilXQ==}
+ '@decky/ui@4.11.2':
+ resolution: {integrity: sha512-IHwgy37DZLdRK8XUHF1Eoss/sTCcW/g/fmE4Wd3EKyQjJAbM5385wMUxzZqcE5MNC6TsdAKTa941m0n5flSOxw==}
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
@@ -2311,7 +2311,7 @@ snapshots:
'@decky/api@1.1.3': {}
- '@decky/ui@4.11.1': {}
+ '@decky/ui@4.11.2': {}
'@esbuild/aix-ppc64@0.20.2':
optional: true
diff --git a/frontend/src/index.ts b/frontend/src/index.ts
index 4f4ff4f7..7ef5087f 100644
--- a/frontend/src/index.ts
+++ b/frontend/src/index.ts
@@ -22,11 +22,13 @@
DFLWebpack.findModule((m) => m.createPortal && m.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE);
console.debug('[Decky:Boot] Setting up JSX internals...');
- const jsx = DFLWebpack.findModule((m) => m.jsx && Object.keys(m).length == 1)?.jsx;
- if (jsx) {
+ const jsxModule = DFLWebpack.findModule((m) => (m.jsx && m.jsxs) || (m.jsx && Object.keys(m).length == 1));
+ if (jsxModule.jsxs) {
+ window.SP_JSX = jsxModule;
+ } else {
window.SP_JSX = {
- jsx,
- jsxs: jsx,
+ jsx: jsxModule.jsx,
+ jsxs: jsxModule.jsx,
Fragment: window.SP_REACT.Fragment,
};
}
diff --git a/frontend/src/tabs-hook.tsx b/frontend/src/tabs-hook.tsx
index a70c6580..5d9518fd 100644
--- a/frontend/src/tabs-hook.tsx
+++ b/frontend/src/tabs-hook.tsx
@@ -29,7 +29,8 @@ interface Tab {
class TabsHook extends Logger {
// private keys = 7;
tabs: Tab[] = [];
- private qamPatch?: Patch;
+ private qamBrowserViewPatch?: Patch;
+ private qamEmbeddedPatch?: Patch;
constructor() {
super('TabsHook');
@@ -40,11 +41,13 @@ class TabsHook extends Logger {
}
init() {
- // TODO patch the "embedded" renderer in this module too (seems to be for VR? unsure)
const qamModule = findModuleByExport((e) => e?.type?.toString?.()?.includes('QuickAccessMenuBrowserView'));
- const qamRenderer = Object.values(qamModule).find((e: any) =>
+ const qamBrowserViewRenderer = Object.values(qamModule).find((e: any) =>
e?.type?.toString?.()?.includes('QuickAccessMenuBrowserView'),
);
+ const qamEmbeddedRenderer = Object.values(qamModule).find((e: any) =>
+ e?.type?.toString?.()?.includes('QuickAccessMenuEmbedded'),
+ );
const patchHandler = createReactTreePatcher(
[(tree) => findInReactTree(tree, (node) => node?.props?.onFocusNavDeactivated)],
@@ -56,12 +59,21 @@ class TabsHook extends Logger {
'TabsHook',
);
- this.qamPatch = afterPatch(qamRenderer, 'type', patchHandler);
+ this.qamBrowserViewPatch = afterPatch(qamBrowserViewRenderer, 'type', patchHandler);
+ if (qamEmbeddedRenderer) this.qamEmbeddedPatch = afterPatch(qamEmbeddedRenderer, 'type', patchHandler);
// Patch already rendered qam
const root = getReactRoot(document.getElementById('root') as any);
- const qamNode = root && findInReactTree(root, (n: any) => n.elementType == qamRenderer); // need elementType, because type is actually mobx wrapper
+ const qamNode =
+ root &&
+ findInReactTree(
+ root,
+ (n: any) =>
+ n.elementType == qamBrowserViewRenderer ||
+ (qamEmbeddedRenderer != null && n.elementType == qamEmbeddedRenderer),
+ ); // need elementType, because type is actually mobx wrapper
if (qamNode) {
+ console.log('patching existing qam');
// Only affects this fiber node so we don't need to unpatch here
qamNode.type = qamNode.elementType.type;
if (qamNode?.alternate) {
@@ -71,7 +83,8 @@ class TabsHook extends Logger {
}
deinit() {
- this.qamPatch?.unpatch();
+ this.qamBrowserViewPatch?.unpatch();
+ this.qamEmbeddedPatch?.unpatch();
}
add(tab: Tab) {