mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-07-11 03:42:01 +00:00
eb439574be
* 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
37 lines
795 B
TypeScript
37 lines
795 B
TypeScript
import { useEffect, useState } from 'react';
|
|
|
|
interface GetSettingArgs<T> {
|
|
key: string;
|
|
default: T;
|
|
}
|
|
|
|
interface SetSettingArgs<T> {
|
|
key: string;
|
|
value: T;
|
|
}
|
|
|
|
export function useSetting<T>(key: string, def: T): [value: T | null, setValue: (value: T) => Promise<void>] {
|
|
const [value, setValue] = useState(def);
|
|
|
|
useEffect(() => {
|
|
(async () => {
|
|
const res = (await window.DeckyPluginLoader.callServerMethod('get_setting', {
|
|
key,
|
|
default: def,
|
|
} as GetSettingArgs<T>)) as { result: T };
|
|
setValue(res.result);
|
|
})();
|
|
}, []);
|
|
|
|
return [
|
|
value,
|
|
async (val: T) => {
|
|
setValue(val);
|
|
await window.DeckyPluginLoader.callServerMethod('set_setting', {
|
|
key,
|
|
value: val,
|
|
} as SetSettingArgs<T>);
|
|
},
|
|
];
|
|
}
|