summaryrefslogtreecommitdiff
path: root/frontend/src/components/settings/pages/general
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2022-08-24 23:51:20 -0400
committerAAGaming <aa@mail.catvibers.me>2022-08-24 23:51:20 -0400
commit79db0c779d6942c6bdc6823a5faef57b5307f7b3 (patch)
tree3ba46c46750d7cdfc04f6c14191e0dd1177c170f /frontend/src/components/settings/pages/general
parentfe2b6b02831c918c25d88604df94d8d2f360b75a (diff)
downloaddecky-loader-79db0c779d6942c6bdc6823a5faef57b5307f7b3.tar.gz
decky-loader-79db0c779d6942c6bdc6823a5faef57b5307f7b3.zip
Settings API for loader, preview branch select
Diffstat (limited to 'frontend/src/components/settings/pages/general')
-rw-r--r--frontend/src/components/settings/pages/general/BranchSelect.tsx33
-rw-r--r--frontend/src/components/settings/pages/general/RemoteDebugging.tsx13
-rw-r--r--frontend/src/components/settings/pages/general/Updater.tsx3
-rw-r--r--frontend/src/components/settings/pages/general/index.tsx2
4 files changed, 41 insertions, 10 deletions
diff --git a/frontend/src/components/settings/pages/general/BranchSelect.tsx b/frontend/src/components/settings/pages/general/BranchSelect.tsx
new file mode 100644
index 00000000..91e814e5
--- /dev/null
+++ b/frontend/src/components/settings/pages/general/BranchSelect.tsx
@@ -0,0 +1,33 @@
+import { Dropdown, Field } from 'decky-frontend-lib';
+import { FunctionComponent } from 'react';
+
+import { useSetting } from '../../../../utils/hooks/useSetting';
+
+enum UpdateBranch {
+ Stable,
+ Prerelease,
+ Nightly,
+}
+
+const BranchSelect: FunctionComponent<{}> = () => {
+ const [selectedBranch, setSelectedBranch] = useSetting<UpdateBranch>('branch', UpdateBranch.Prerelease);
+
+ return (
+ <Field label="Update Channel">
+ <Dropdown
+ rgOptions={Object.values(UpdateBranch)
+ .filter((branch) => typeof branch == 'string')
+ .map((branch) => ({
+ label: branch,
+ data: UpdateBranch[branch],
+ }))}
+ selectedOption={selectedBranch}
+ onChange={(newVal) => {
+ setSelectedBranch(newVal.data);
+ }}
+ />
+ </Field>
+ );
+};
+
+export default BranchSelect;
diff --git a/frontend/src/components/settings/pages/general/RemoteDebugging.tsx b/frontend/src/components/settings/pages/general/RemoteDebugging.tsx
index 3fea0513..36badf45 100644
--- a/frontend/src/components/settings/pages/general/RemoteDebugging.tsx
+++ b/frontend/src/components/settings/pages/general/RemoteDebugging.tsx
@@ -1,15 +1,10 @@
import { Field, Toggle } from 'decky-frontend-lib';
-import { useEffect, useState } from 'react';
import { FaBug } from 'react-icons/fa';
+import { useSetting } from '../../../../utils/hooks/useSetting';
+
export default function RemoteDebuggingSettings() {
- const [allowRemoteDebugging, setAllowRemoteDebugging] = useState<boolean>(false);
- useEffect(() => {
- (async () => {
- const res = (await window.DeckyPluginLoader.callServerMethod('remote_debugging_allowed')) as { result: boolean };
- setAllowRemoteDebugging(res.result);
- })();
- }, []);
+ const [allowRemoteDebugging, setAllowRemoteDebugging] = useSetting<boolean>('cef_forward', false);
return (
<Field
@@ -22,7 +17,7 @@ export default function RemoteDebuggingSettings() {
icon={<FaBug style={{ display: 'block' }} />}
>
<Toggle
- value={allowRemoteDebugging}
+ value={allowRemoteDebugging || false}
onChange={(toggleValue) => {
setAllowRemoteDebugging(toggleValue);
if (toggleValue) window.DeckyPluginLoader.callServerMethod('allow_remote_debugging');
diff --git a/frontend/src/components/settings/pages/general/Updater.tsx b/frontend/src/components/settings/pages/general/Updater.tsx
index e0abe0a0..f7e4a29d 100644
--- a/frontend/src/components/settings/pages/general/Updater.tsx
+++ b/frontend/src/components/settings/pages/general/Updater.tsx
@@ -6,9 +6,10 @@ import { VerInfo, callUpdaterMethod, finishUpdate } from '../../../../updater';
import { useDeckyState } from '../../../DeckyState';
export default function UpdaterSettings() {
+ const { isLoaderUpdating, setIsLoaderUpdating } = useDeckyState();
+
const [versionInfo, setVersionInfo] = useState<VerInfo | null>(null);
const [checkingForUpdates, setCheckingForUpdates] = useState<boolean>(false);
- const { isLoaderUpdating, setIsLoaderUpdating } = useDeckyState();
const [updateProgress, setUpdateProgress] = useState<number>(-1);
const [reloading, setReloading] = useState<boolean>(false);
diff --git a/frontend/src/components/settings/pages/general/index.tsx b/frontend/src/components/settings/pages/general/index.tsx
index c6680026..a37d8dab 100644
--- a/frontend/src/components/settings/pages/general/index.tsx
+++ b/frontend/src/components/settings/pages/general/index.tsx
@@ -3,6 +3,7 @@ import { useState } from 'react';
import { FaShapes } from 'react-icons/fa';
import { installFromURL } from '../../../../store';
+import BranchSelect from './BranchSelect';
import RemoteDebuggingSettings from './RemoteDebugging';
import UpdaterSettings from './Updater';
@@ -21,6 +22,7 @@ export default function GeneralSettings() {
/>
</Field> */}
<UpdaterSettings />
+ <BranchSelect />
<RemoteDebuggingSettings />
<Field
label="Manual plugin install"