UNPKG

react-form-saver

Version:

A React hook to automatically save and restore form drafts with localStorage or sessionStorage.

29 lines (28 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFormSaver = useFormSaver; const react_1 = require("react"); function useFormSaver(key, initialValues, options) { const storage = options?.storage || localStorage; const interval = options?.interval || 1000; const saved = storage.getItem(key); const [values, setValues] = (0, react_1.useState)(saved ? JSON.parse(saved) : initialValues); // Auto-save at intervals (0, react_1.useEffect)(() => { const id = setInterval(() => { storage.setItem(key, JSON.stringify(values)); }, interval); return () => clearInterval(id); }, [values, key, storage, interval]); // Handle form input changes const handleChange = (e) => { const { name, value } = e.target; setValues((prev) => ({ ...prev, [name]: value })); }; // Reset form + clear storage const resetForm = () => { setValues(initialValues); storage.removeItem(key); }; return { values, handleChange, setValues, resetForm }; }