refactor: usePreference + update TS tooling (#2333)

This commit is contained in:
Aman Harwara
2023-05-11 20:04:14 +05:30
committed by GitHub
parent bcd962f150
commit 3b5bf1e509
188 changed files with 544 additions and 2028 deletions

View File

@@ -1,17 +1,18 @@
import { useApplication } from '@/Components/ApplicationProvider'
import { PrefDefaults } from '@/Constants/PrefDefaults'
import { ApplicationEvent, PrefKey } from '@standardnotes/snjs'
import { useEffect, useState } from 'react'
export default function usePreference<T>(preference: PrefKey) {
export default function usePreference<Key extends PrefKey>(preference: Key) {
const application = useApplication()
const [value, setValue] = useState<T>(application.getPreference(preference) as T)
const [value, setValue] = useState(application.getPreference(preference, PrefDefaults[preference]))
useEffect(() => {
return application.addEventObserver(async () => {
const latestValue = application.getPreference(preference)
const latestValue = application.getPreference(preference, PrefDefaults[preference])
setValue(latestValue as T)
setValue(latestValue)
}, ApplicationEvent.PreferencesChanged)
}, [application, preference])