Files
TaxHacker_s23/hooks/use-persistent-form-state.tsx
Vasily Zubarev 0b98a2c307 (squash) init
feat: filters, settings, backups

fix: ts compile errors

feat: new dashboard, webp previews and settings

feat: use webp for pdfs

feat: use webp

fix: analyze resets old data

fix: switch to corsproxy

fix: switch to free cors

fix: max upload limit

fix: currency conversion

feat: transaction export

fix: currency conversion

feat: refactor settings actions

feat: new loader

feat: README + LICENSE

doc: update readme

doc: update readme

doc: update readme

doc: update screenshots

ci: bump prisma
2025-03-16 21:29:20 +01:00

23 lines
565 B
TypeScript

import { useEffect, useState } from "react"
export function usePersistentFormState(key: string, defaultState = {}) {
const [formState, setFormState] = useState(defaultState)
const [isLoaded, setIsLoaded] = useState(false)
useEffect(() => {
const saved = localStorage.getItem(key)
if (saved) {
setFormState(JSON.parse(saved))
}
setIsLoaded(true)
}, [])
useEffect(() => {
if (isLoaded) {
localStorage.setItem(key, JSON.stringify(formState))
}
}, [formState, isLoaded])
return [formState, setFormState] as const
}