import { useEffect, useState } from 'react'; import { getSetting, setSetting } from '../settings'; export function useSetting(key: string, def: T): [value: T, setValue: (value: T) => Promise] { const [value, setValue] = useState(def); useEffect(() => { (async () => { const res = await getSetting(key, def); setValue(res); })(); }, []); return [ value, async (val: T) => { setValue(val); await setSetting(key, val); }, ]; }