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

40 lines (39 loc) 1.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.cn = cn; exports.createEmptyValues = createEmptyValues; const zod_1 = __importDefault(require("zod")); function cn(...classes) { return classes.filter(Boolean).join(" "); } function createEmptyValues(schema) { if (!schema) return {}; const shape = schema.shape; const result = {}; for (const key in shape) { const field = shape[key]; result[key] = getEmptyValue(field); } return result; } function getEmptyValue(field) { if (field instanceof zod_1.default.ZodObject) return createEmptyValues(field); if (field instanceof zod_1.default.ZodArray) return []; if (field instanceof zod_1.default.ZodBoolean) return false; // For strings and numbers, return "" as a neutral empty form value if (field instanceof zod_1.default.ZodString || field instanceof zod_1.default.ZodNumber || field instanceof zod_1.default.ZodDate || field instanceof zod_1.default.ZodOptional || field instanceof zod_1.default.ZodNullable) { return ""; } return ""; }