diff options
Diffstat (limited to 'frontend/src/components/settings/index.tsx')
| -rw-r--r-- | frontend/src/components/settings/index.tsx | 50 |
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} />; } |
