/
githubmirror
/
screenshot-to-code
Обзор
Документация
Войти
/
githubmirror
/
screenshot-to-code
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
frontend/src/hooks/usePersistedState.ts
19 строк
544 B
clean99
feat: add use persisted state hook
20 ноя 2023, 07:39
20 ноя 2023, 07:39
5d1e0a3
Код
Авторство
О чём код?
import { Dispatch, SetStateAction, useEffect, useState } from 'react'; type PersistedState<T> = [T, Dispatch<SetStateAction<T>>]; function usePersistedState<T>(defaultValue: T, key: string): PersistedState<T> { const [value, setValue] = useState<T>(() => { const value = window.localStorage.getItem(key); return value ? (JSON.parse(value) as T) : defaultValue; }); useEffect(() => { window.localStorage.setItem(key, JSON.stringify(value)); }, [key, value]); return [value, setValue]; } export { usePersistedState };