diff options
Diffstat (limited to 'frontend/src/utils')
| -rw-r--r-- | frontend/src/utils/hooks/useSetting.ts | 24 | ||||
| -rw-r--r-- | frontend/src/utils/settings.ts | 24 |
2 files changed, 29 insertions, 19 deletions
diff --git a/frontend/src/utils/hooks/useSetting.ts b/frontend/src/utils/hooks/useSetting.ts index f950bf6a..afed5239 100644 --- a/frontend/src/utils/hooks/useSetting.ts +++ b/frontend/src/utils/hooks/useSetting.ts @@ -1,25 +1,14 @@ import { useEffect, useState } from 'react'; -interface GetSettingArgs<T> { - key: string; - default: T; -} - -interface SetSettingArgs<T> { - key: string; - value: T; -} +import { getSetting, setSetting } from '../settings'; -export function useSetting<T>(key: string, def: T): [value: T | null, setValue: (value: T) => Promise<void>] { +export function useSetting<T>(key: string, def: T): [value: T, 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); + const res = await getSetting<T>(key, def); + setValue(res); })(); }, []); @@ -27,10 +16,7 @@ export function useSetting<T>(key: string, def: T): [value: T | null, setValue: value, async (val: T) => { setValue(val); - await window.DeckyPluginLoader.callServerMethod('set_setting', { - key, - value: val, - } as SetSettingArgs<T>); + await setSetting(key, val); }, ]; } diff --git a/frontend/src/utils/settings.ts b/frontend/src/utils/settings.ts new file mode 100644 index 00000000..cadfe935 --- /dev/null +++ b/frontend/src/utils/settings.ts @@ -0,0 +1,24 @@ +interface GetSettingArgs<T> { + key: string; + default: T; +} + +interface SetSettingArgs<T> { + key: string; + value: T; +} + +export async function getSetting<T>(key: string, def: T): Promise<T> { + const res = (await window.DeckyPluginLoader.callServerMethod('get_setting', { + key, + default: def, + } as GetSettingArgs<T>)) as { result: T }; + return res.result; +} + +export async function setSetting<T>(key: string, value: T): Promise<void> { + await window.DeckyPluginLoader.callServerMethod('set_setting', { + key, + value, + } as SetSettingArgs<T>); +} |
