summaryrefslogtreecommitdiff
path: root/frontend/src/components/settings/index.tsx
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2022-10-15 23:46:42 -0400
committerGitHub <noreply@github.com>2022-10-15 20:46:42 -0700
commit6e3c05072cb507e2a376b7019836bea7bf663cb0 (patch)
tree6171eb40ba1a76e1e2b24f8cac8545114a5ad4ef /frontend/src/components/settings/index.tsx
parent9b405e4bdc6ead86d69ad8f54af89a8d5b484f08 (diff)
downloaddecky-loader-6e3c05072cb507e2a376b7019836bea7bf663cb0.tar.gz
decky-loader-6e3c05072cb507e2a376b7019836bea7bf663cb0.zip
Developer menu (#211)v2.3.0-pre1
* add settings utils to use settings outside of components * initial implementation of developer menu * ✨ Add support for addScriptToEvaluateOnNewDocument * React DevTools support * increase chance of RDT successfully injecting * Rewrite toaster hook to not re-create the window * remove friends focus workaround because it's fixed * Expose various DFL utilities as DFL in dev mode * try to fix text field focuss * move focusable to outside field * add onTouchEnd and onClick to focusable * Update pnpm-lock.yaml Co-authored-by: FinalDoom <7464170-FinalDoom@users.noreply.gitlab.com> Co-authored-by: TrainDoctor <traindoctor@protonmail.com>
Diffstat (limited to 'frontend/src/components/settings/index.tsx')
-rw-r--r--frontend/src/components/settings/index.tsx50
1 files changed, 32 insertions, 18 deletions
diff --git a/frontend/src/components/settings/index.tsx b/frontend/src/components/settings/index.tsx
index eb3a8bbd..01f7d407 100644
--- a/frontend/src/components/settings/index.tsx
+++ b/frontend/src/components/settings/index.tsx
@@ -1,25 +1,39 @@
import { SidebarNavigation } from 'decky-frontend-lib';
+import { lazy } from 'react';
+import { useSetting } from '../../utils/hooks/useSetting';
+import WithSuspense from '../WithSuspense';
import GeneralSettings from './pages/general';
import PluginList from './pages/plugin_list';
+const DeveloperSettings = lazy(() => import('./pages/developer'));
+
export default function SettingsPage() {
- return (
- <SidebarNavigation
- title="Decky Settings"
- showTitle
- pages={[
- {
- title: 'General',
- content: <GeneralSettings />,
- route: '/decky/settings/general',
- },
- {
- title: 'Plugins',
- content: <PluginList />,
- route: '/decky/settings/plugins',
- },
- ]}
- />
- );
+ const [isDeveloper, setIsDeveloper] = useSetting<boolean>('developer.enabled', false);
+
+ const pages = [
+ {
+ title: 'General',
+ content: <GeneralSettings isDeveloper={isDeveloper} setIsDeveloper={setIsDeveloper} />,
+ route: '/decky/settings/general',
+ },
+ {
+ title: 'Plugins',
+ content: <PluginList />,
+ route: '/decky/settings/plugins',
+ },
+ ];
+
+ if (isDeveloper)
+ pages.push({
+ title: 'Developer',
+ content: (
+ <WithSuspense>
+ <DeveloperSettings />
+ </WithSuspense>
+ ),
+ route: '/decky/settings/developer',
+ });
+
+ return <SidebarNavigation title="Decky Settings" showTitle pages={pages} />;
}