diff options
| author | AAGaming <aa@mail.catvibers.me> | 2022-09-04 13:33:42 -0400 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2022-09-04 13:33:42 -0400 |
| commit | acaf6c72e48e2bbb42b921292d49c1d157306d0b (patch) | |
| tree | 0a93c06a0cb01186edde9bfdef5aace71308ae54 /frontend | |
| parent | eb439574becb9a82c283d513a98440d7c8efbafe (diff) | |
| download | decky-loader-acaf6c72e48e2bbb42b921292d49c1d157306d0b.tar.gz decky-loader-acaf6c72e48e2bbb42b921292d49c1d157306d0b.zip | |
Update decky-frontend-lib and refactor patches
Diffstat (limited to 'frontend')
| -rw-r--r-- | frontend/package.json | 2 | ||||
| -rw-r--r-- | frontend/pnpm-lock.yaml | 8 | ||||
| -rw-r--r-- | frontend/src/router-hook.tsx | 12 | ||||
| -rw-r--r-- | frontend/src/tabs-hook.ts | 8 | ||||
| -rw-r--r-- | frontend/src/toaster.tsx | 9 |
5 files changed, 21 insertions, 18 deletions
diff --git a/frontend/package.json b/frontend/package.json index b0eb2df7..5ce04122 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -39,7 +39,7 @@ } }, "dependencies": { - "decky-frontend-lib": "^1.8.2", + "decky-frontend-lib": "^2.0.0", "react-icons": "^4.4.0", "react-markdown": "^8.0.3", "remark-gfm": "^3.0.1" diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index e1094544..a66dd98e 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -9,7 +9,7 @@ specifiers: '@types/react': 16.14.0 '@types/react-router': 5.1.18 '@types/webpack': ^5.28.0 - decky-frontend-lib: ^1.8.2 + decky-frontend-lib: ^2.0.0 husky: ^8.0.1 import-sort-style-module: ^6.0.0 inquirer: ^8.2.4 @@ -27,7 +27,7 @@ specifiers: typescript: ^4.7.4 dependencies: - decky-frontend-lib: 1.8.2 + decky-frontend-lib: 2.0.0 react-icons: 4.4.0_react@16.14.0 react-markdown: 8.0.3_vshvapmxg47tngu7tvrsqpq55u remark-gfm: 3.0.1 @@ -875,8 +875,8 @@ packages: dependencies: ms: 2.1.2 - /decky-frontend-lib/1.8.2: - resolution: {integrity: sha512-SwGoUBpKd8OM3kovItW+oCpevDiDXFu0UaUh1vyD4BYG0s+4uQBdeevWLhyJHk0402pAUDrOL8022jpana5dnA==} + /decky-frontend-lib/2.0.0: + resolution: {integrity: sha512-H7+JpKHlClECVpo+MCEwej7R9wDWk9M2uMSyTvuhTfLZe3RThsxWCiqY640Cjh/zIW2A7GyVRd4SjLtn6Isdeg==} dependencies: minimist: 1.2.6 dev: false diff --git a/frontend/src/router-hook.tsx b/frontend/src/router-hook.tsx index 8043f846..8414db2c 100644 --- a/frontend/src/router-hook.tsx +++ b/frontend/src/router-hook.tsx @@ -1,4 +1,4 @@ -import { afterPatch, findModuleChild, unpatch } from 'decky-frontend-lib'; +import { Patch, afterPatch, findModuleChild } from 'decky-frontend-lib'; import { ReactElement, ReactNode, cloneElement, createElement, memo } from 'react'; import type { Route } from 'react-router'; @@ -22,6 +22,8 @@ class RouterHook extends Logger { private memoizedRouter: any; private gamepadWrapper: any; private routerState: DeckyRouterState = new DeckyRouterState(); + private wrapperPatch: Patch; + private routerPatch?: Patch; constructor() { super('RouterHook'); @@ -87,7 +89,7 @@ class RouterHook extends Logger { return children; }; - afterPatch(this.gamepadWrapper, 'render', (_: any, ret: any) => { + this.wrapperPatch = afterPatch(this.gamepadWrapper, 'render', (_: any, ret: any) => { if (ret?.props?.children?.props?.children?.length == 5) { if ( ret.props.children.props.children[2]?.props?.children?.[0]?.type?.type @@ -96,7 +98,7 @@ class RouterHook extends Logger { ) { if (!this.router) { this.router = ret.props.children.props.children[2]?.props?.children?.[0]?.type; - afterPatch(this.router, 'type', (_: any, ret: any) => { + this.routerPatch = afterPatch(this.router, 'type', (_: any, ret: any) => { if (!Route) Route = ret.props.children[0].props.children.find((x: any) => x.props.path == '/createaccount').type; const returnVal = ( @@ -133,8 +135,8 @@ class RouterHook extends Logger { } deinit() { - unpatch(this.gamepadWrapper, 'render'); - this.router && unpatch(this.router, 'type'); + this.wrapperPatch.unpatch(); + this.routerPatch?.unpatch(); } } diff --git a/frontend/src/tabs-hook.ts b/frontend/src/tabs-hook.ts index ffa87464..be413de0 100644 --- a/frontend/src/tabs-hook.ts +++ b/frontend/src/tabs-hook.ts @@ -1,4 +1,4 @@ -import { QuickAccessTab, afterPatch, sleep, unpatch } from 'decky-frontend-lib'; +import { Patch, QuickAccessTab, afterPatch, sleep } from 'decky-frontend-lib'; import { memo } from 'react'; import Logger from './logger'; @@ -35,6 +35,8 @@ class TabsHook extends Logger { private qAPTree: any; private rendererTree: any; + private cNodePatch?: Patch; + constructor() { super('TabsHook'); @@ -60,7 +62,7 @@ class TabsHook extends Logger { } let newQA: any; let newQATabRenderer: any; - afterPatch(scrollRoot.stateNode, 'render', (_: any, ret: any) => { + this.cNodePatch = afterPatch(scrollRoot.stateNode, 'render', (_: any, ret: any) => { if (!this.quickAccess && ret.props.children.props.children[4]) { this.quickAccess = ret?.props?.children?.props?.children[4].type; newQA = (...args: any) => { @@ -103,7 +105,7 @@ class TabsHook extends Logger { } deinit() { - if (this.cNode) unpatch(this.cNode.stateNode, 'render'); + this.cNodePatch?.unpatch(); if (this.qAPTree) this.qAPTree.type = this.quickAccess; if (this.rendererTree) this.rendererTree.type = this.tabRenderer; if (this.cNode) this.cNode.stateNode.forceUpdate(); diff --git a/frontend/src/toaster.tsx b/frontend/src/toaster.tsx index 04f1556e..f42eb3f5 100644 --- a/frontend/src/toaster.tsx +++ b/frontend/src/toaster.tsx @@ -1,4 +1,4 @@ -import { ToastData, afterPatch, findInReactTree, findModuleChild, sleep, unpatch } from 'decky-frontend-lib'; +import { Patch, ToastData, afterPatch, findInReactTree, findModuleChild, sleep } from 'decky-frontend-lib'; import Toast from './components/Toast'; import Logger from './logger'; @@ -11,7 +11,7 @@ declare global { } class Toaster extends Logger { - private instanceRet: any; + private instanceRetPatch?: Patch; private node: any; private settingsModule: any; @@ -46,8 +46,7 @@ class Toaster extends Logger { this.node.stateNode.render = (...args: any[]) => { const ret = this.node.stateNode.__proto__.render.call(this.node.stateNode, ...args); if (ret) { - this.instanceRet = ret; - afterPatch(ret, 'type', (_: any, ret: any) => { + this.instanceRetPatch = afterPatch(ret, 'type', (_: any, ret: any) => { if (ret?.props?.children[1]?.children?.props?.notification?.decky) { const toast = ret.props.children[1].children.props.notification; ret.props.children[1].children.type = () => <Toast toast={toast} />; @@ -84,7 +83,7 @@ class Toaster extends Logger { } deinit() { - this.instanceRet && unpatch(this.instanceRet, 'type'); + this.instanceRetPatch?.unpatch(); this.node && delete this.node.stateNode.render; this.node && this.node.stateNode.forceUpdate(); } |
