From 79db0c779d6942c6bdc6823a5faef57b5307f7b3 Mon Sep 17 00:00:00 2001
From: AAGaming <aa@mail.catvibers.me>
Date: Wed, 24 Aug 2022 23:51:20 -0400
Subject: Settings API for loader, preview branch select

---
 .../settings/pages/general/BranchSelect.tsx        | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 frontend/src/components/settings/pages/general/BranchSelect.tsx

(limited to 'frontend/src/components/settings/pages/general/BranchSelect.tsx')

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;
-- 
cgit v1.2.3

