From 87a7361dc76949325421d9579e1e1813e84dcc1e Mon Sep 17 00:00:00 2001 From: AAGaming Date: Fri, 14 Oct 2022 23:33:16 -0400 Subject: Allow B button to close active plugin and return to menu. (#218) --- frontend/src/components/PluginView.tsx | 58 +++++++++++++--------- .../src/components/QuickAccessVisibleState.tsx | 13 +++++ 2 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 frontend/src/components/QuickAccessVisibleState.tsx (limited to 'frontend/src/components') diff --git a/frontend/src/components/PluginView.tsx b/frontend/src/components/PluginView.tsx index 0d0a52cf..2ae0b555 100644 --- a/frontend/src/components/PluginView.tsx +++ b/frontend/src/components/PluginView.tsx @@ -1,5 +1,6 @@ import { ButtonItem, + Focusable, PanelSection, PanelSectionRow, joinClassNames, @@ -10,38 +11,47 @@ import { VFC } from 'react'; import { useDeckyState } from './DeckyState'; import NotificationBadge from './NotificationBadge'; +import { useQuickAccessVisible } from './QuickAccessVisibleState'; +import TitleView from './TitleView'; const PluginView: VFC = () => { - const { plugins, updates, activePlugin, setActivePlugin } = useDeckyState(); + const { plugins, updates, activePlugin, setActivePlugin, closeActivePlugin } = useDeckyState(); + const visible = useQuickAccessVisible(); if (activePlugin) { return ( -
- {activePlugin.content} -
+ + +
+ {visible && activePlugin.content} +
+
); } return ( -
- - {plugins - .filter((p) => p.content) - .map(({ name, icon }) => ( - - setActivePlugin(name)}> -
- {icon} -
{name}
- -
-
-
- ))} -
-
+ <> + +
+ + {plugins + .filter((p) => p.content) + .map(({ name, icon }) => ( + + setActivePlugin(name)}> +
+ {icon} +
{name}
+ +
+
+
+ ))} +
+
+ ); }; diff --git a/frontend/src/components/QuickAccessVisibleState.tsx b/frontend/src/components/QuickAccessVisibleState.tsx new file mode 100644 index 00000000..b5ee3b98 --- /dev/null +++ b/frontend/src/components/QuickAccessVisibleState.tsx @@ -0,0 +1,13 @@ +import { FC, createContext, useContext } from 'react'; + +const QuickAccessVisibleState = createContext(true); + +export const useQuickAccessVisible = () => useContext(QuickAccessVisibleState); + +interface Props { + visible: boolean; +} + +export const QuickAccessVisibleStateProvider: FC = ({ children, visible }) => { + return {children}; +}; -- cgit v1.2.3