UNPKG

@explita/daily-toolset-form

Version:

A lightweight form toolkit for React built with developer ergonomics in mind. Includes a flexible Form component, useForm, useField, and useFormContext hooks for managing form state and validation with ease. Designed to simplify complex forms while remain

41 lines (40 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.writeDraft = void 0; exports.readDraft = readDraft; exports.deleteDraft = deleteDraft; const debounce_1 = require("./debounce"); function getDrafts() { const stored = localStorage.getItem("drafts"); if (!stored) return {}; try { return JSON.parse(stored) || {}; } catch { localStorage.removeItem("drafts"); // corrupted data return {}; } } function setDrafts(drafts) { if (Object.keys(drafts).length === 0) { localStorage.removeItem("drafts"); } else { localStorage.setItem("drafts", JSON.stringify(drafts)); } } exports.writeDraft = (0, debounce_1.debounce)((data, draftKey) => { const drafts = getDrafts(); const newDrafts = { ...drafts, [draftKey]: data }; setDrafts(newDrafts); }, 200); function readDraft(draftKey) { const drafts = getDrafts(); return drafts[draftKey]; } function deleteDraft(draftKey) { const drafts = getDrafts(); const newDrafts = Object.fromEntries(Object.entries(drafts).filter(([key]) => key !== draftKey)); setDrafts(newDrafts); }