summaryrefslogtreecommitdiff
path: root/frontend/src/components/settings
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2022-06-22 23:22:27 -0400
committerAAGaming <aa@mail.catvibers.me>2022-06-22 23:22:27 -0400
commit9619c52720c97ef74842b15aa732dd0a8d6fb26a (patch)
treeceb46763b919ef8b5f7ac2c0cc0522ad9b6c95b9 /frontend/src/components/settings
parent80b223180e9a5f86bb6f6a42fb4660862872f7ab (diff)
downloaddecky-loader-9619c52720c97ef74842b15aa732dd0a8d6fb26a.tar.gz
decky-loader-9619c52720c97ef74842b15aa732dd0a8d6fb26a.zip
add settings page with install from URL option
Diffstat (limited to 'frontend/src/components/settings')
-rw-r--r--frontend/src/components/settings/index.tsx19
-rw-r--r--frontend/src/components/settings/pages/GeneralSettings.tsx30
2 files changed, 49 insertions, 0 deletions
diff --git a/frontend/src/components/settings/index.tsx b/frontend/src/components/settings/index.tsx
new file mode 100644
index 00000000..d4799fa9
--- /dev/null
+++ b/frontend/src/components/settings/index.tsx
@@ -0,0 +1,19 @@
+import { SidebarNavigation } from 'decky-frontend-lib';
+
+import GeneralSettings from './pages/GeneralSettings';
+
+export default function SettingsPage() {
+ return (
+ <SidebarNavigation
+ title="Decky Settings"
+ showTitle
+ pages={[
+ {
+ title: 'General',
+ content: <GeneralSettings />,
+ route: '/decky/settings/general',
+ },
+ ]}
+ />
+ );
+}
diff --git a/frontend/src/components/settings/pages/GeneralSettings.tsx b/frontend/src/components/settings/pages/GeneralSettings.tsx
new file mode 100644
index 00000000..1cc8076d
--- /dev/null
+++ b/frontend/src/components/settings/pages/GeneralSettings.tsx
@@ -0,0 +1,30 @@
+import { DialogButton, Field, TextField } from 'decky-frontend-lib';
+import { useState } from 'react';
+import { FaShapes } from 'react-icons/fa';
+
+import { installFromURL } from '../../store/Store';
+
+export default function GeneralSettings() {
+ const [pluginURL, setPluginURL] = useState('');
+ // const [checked, setChecked] = useState(false); // store these in some kind of State instead
+ return (
+ <div>
+ {/* <Field
+ label="A Toggle with an icon"
+ icon={<FaShapes style={{ display: 'block' }} />}
+ >
+ <Toggle
+ value={checked}
+ onChange={(e) => setChecked(e)}
+ />
+ </Field> */}
+ <Field
+ label="Manual plugin install"
+ description={<TextField label={'URL'} value={pluginURL} onChange={(e) => setPluginURL(e?.target.value)} />}
+ icon={<FaShapes style={{ display: 'block' }} />}
+ >
+ <DialogButton onClick={() => installFromURL(pluginURL)}>Install</DialogButton>
+ </Field>
+ </div>
+ );
+}