(key: T)
| 214 | } |
| 215 | |
| 216 | function getSettingsKeyAtom<T extends keyof SettingsType>(key: T): Atom<SettingsType[T]> { |
| 217 | if (isPreviewWindow()) return NullAtom as Atom<SettingsType[T]>; |
| 218 | let settingsKeyAtom = settingsAtomCache.get(key) as Atom<SettingsType[T]>; |
| 219 | if (settingsKeyAtom == null) { |
| 220 | settingsKeyAtom = atom((get) => { |
| 221 | const settings = get(atoms.settingsAtom); |
| 222 | if (settings == null) { |
| 223 | return null; |
| 224 | } |
| 225 | return settings[key]; |
| 226 | }); |
| 227 | settingsAtomCache.set(key, settingsKeyAtom); |
| 228 | } |
| 229 | return settingsKeyAtom; |
| 230 | } |
| 231 | |
| 232 | function useSettingsKeyAtom<T extends keyof SettingsType>(key: T): SettingsType[T] { |
| 233 | return useAtomValue(getSettingsKeyAtom(key)); |
no test coverage detected