UNPKG

remix-validated-form

Version:

Form component and utils for easy form validation in remix

39 lines (38 loc) 2 kB
import { Atom } from "jotai"; export declare type InternalFormId = string | symbol; export declare const formAtomFamily: <T>(data: T) => { (param: InternalFormId): Atom<T> & { write: (get: { <Value>(atom: Atom<Value | Promise<Value>>): Value; <Value_1>(atom: Atom<Promise<Value_1>>): Value_1; <Value_2>(atom: Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2; } & { <Value_3>(atom: Atom<Value_3 | Promise<Value_3>>, options: { unstable_promise: true; }): Value_3 | Promise<Value_3>; <Value_4>(atom: Atom<Promise<Value_4>>, options: { unstable_promise: true; }): Value_4 | Promise<Value_4>; <Value_5>(atom: Atom<Value_5>, options: { unstable_promise: true; }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>; }, set: { <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result; <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1; }, update: T | ((prev: T) => T)) => void; onMount?: (<S extends import("jotai/core/atom").SetAtom<T | ((prev: T) => T), void>>(setAtom: S) => void | (() => void)) | undefined; } & { init: T; }; remove(param: InternalFormId): void; setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void; }; export declare type FieldAtomKey = { formId: InternalFormId; field: string; }; export declare const fieldAtomFamily: <T extends Atom<unknown>>(func: (key: FieldAtomKey) => T) => { (param: FieldAtomKey): T; remove(param: FieldAtomKey): void; setShouldRemove(shouldRemove: ((createdAt: number, param: FieldAtomKey) => boolean) | null): void; };