Addition of proper branch slection (#168)

* This is a bit better, but branch selection still isn't working -_-

* I'm the king of oversight

* Selecting different branch checks for updates

* Stable doesn't detect old versions, which indicates it doesn't work

* Start adding deckyState for plugin updating

* Few tweaks

* Disable nightly selection

* Update decky-frontend-lib and move useSetting set setting to async
This commit is contained in:
TrainDoctor
2022-09-01 13:46:49 -07:00
committed by GitHub
parent 16a6e9b6a9
commit eb439574be
9 changed files with 80 additions and 49 deletions
+11 -14
View File
@@ -10,9 +10,8 @@ interface SetSettingArgs<T> {
value: T;
}
export function useSetting<T>(key: string, def: T): [value: T | null, setValue: (value: T) => void] {
export function useSetting<T>(key: string, def: T): [value: T | null, setValue: (value: T) => Promise<void>] {
const [value, setValue] = useState(def);
const [ready, setReady] = useState<boolean>(false);
useEffect(() => {
(async () => {
@@ -20,20 +19,18 @@ export function useSetting<T>(key: string, def: T): [value: T | null, setValue:
key,
default: def,
} as GetSettingArgs<T>)) as { result: T };
setReady(true);
setValue(res.result);
})();
}, []);
useEffect(() => {
if (ready)
(async () => {
await window.DeckyPluginLoader.callServerMethod('set_setting', {
key,
value,
} as SetSettingArgs<T>);
})();
}, [value]);
return [value, setValue];
return [
value,
async (val: T) => {
setValue(val);
await window.DeckyPluginLoader.callServerMethod('set_setting', {
key,
value: val,
} as SetSettingArgs<T>);
},
];
}