diff options
Diffstat (limited to 'frontend')
| -rw-r--r-- | frontend/src/components/Toast.tsx | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/frontend/src/components/Toast.tsx b/frontend/src/components/Toast.tsx index 559c37c6..9a74eb5d 100644 --- a/frontend/src/components/Toast.tsx +++ b/frontend/src/components/Toast.tsx @@ -1,5 +1,5 @@ -import { ToastData, findModule, joinClassNames } from 'decky-frontend-lib'; -import { FunctionComponent } from 'react'; +import { ToastData, findModule, findModuleChild, joinClassNames } from 'decky-frontend-lib'; +import { FunctionComponent, useEffect } from 'react'; interface ToastProps { toast: { @@ -28,7 +28,21 @@ const templateClasses = findModule((mod) => { return false; }); +const useComposition = findModuleChild((m: any) => { + if (typeof m !== 'object') return false; + for (let prop in m) { + if (m[prop]?.toString()?.includes('.Get().ChangeMinimumCompositionStateRequest')) return m[prop]; + } + return false; +}); + const Toast: FunctionComponent<ToastProps> = ({ toast }) => { + const composition = useComposition(2); // 2: overlay + useEffect(() => { + return () => { + composition.releaseComposition(); + }; + }, []); return ( <div style={{ '--toast-duration': `${toast.nToastDurationMS}ms` } as React.CSSProperties} |
