fix: fix blank plugins

this is why i shouldn't program at night
This commit is contained in:
AAGaming
2023-06-18 17:27:23 -04:00
parent 890599c7bb
commit 30d7c9bb81
2 changed files with 16 additions and 14 deletions

View File

@@ -1,17 +1,16 @@
import { FC, createContext, useContext, useState } from 'react';
const QuickAccessVisibleState = createContext<boolean>(true);
const QuickAccessVisibleState = createContext<boolean>(false);
export const useQuickAccessVisible = () => useContext(QuickAccessVisibleState);
export const QuickAccessVisibleStateProvider: FC<{ initial: boolean; tab: any }> = ({ children, initial, tab }) => {
export const QuickAccessVisibleStateProvider: FC<{ tab: any }> = ({ children, tab }) => {
const initial = tab.initialVisibility;
const [visible, setVisible] = useState<boolean>(initial);
const [prev, setPrev] = useState<boolean>(initial);
// HACK but i can't think of a better way to do this
tab.qAMVisibilitySetter = setVisible;
if (initial != prev) {
setPrev(initial);
setVisible(initial);
}
tab.qAMVisibilitySetter = (val: boolean) => {
if (val != visible) setVisible(val);
};
return <QuickAccessVisibleState.Provider value={visible}>{children}</QuickAccessVisibleState.Provider>;
};

View File

@@ -128,7 +128,13 @@ class TabsHook extends Logger {
let deckyTabAmount = existingTabs.reduce((prev: any, cur: any) => (cur.decky ? prev + 1 : prev), 0);
if (deckyTabAmount == this.tabs.length) {
for (let tab of existingTabs) {
if (tab?.decky && tab?.qAMVisibilitySetter) tab?.qAMVisibilitySetter(visible);
if (tab?.decky) {
if (tab?.qAMVisibilitySetter) {
tab?.qAMVisibilitySetter(visible);
} else {
tab.initialVisibility = visible;
}
}
}
return;
}
@@ -138,12 +144,9 @@ class TabsHook extends Logger {
title,
tab: icon,
decky: true,
initialVisibility: visible,
};
tab.panel = (
<QuickAccessVisibleStateProvider initial={visible} tab={tab}>
{content}
</QuickAccessVisibleStateProvider>
);
tab.panel = <QuickAccessVisibleStateProvider tab={tab}>{content}</QuickAccessVisibleStateProvider>;
existingTabs.push(tab);
}
}