UNPKG

remix-validated-form

Version:

Form component and utils for easy form validation in remix

27 lines (26 loc) 1.35 kB
import { InternalFormId } from "./types"; export declare type FieldState = { refCount: number; value: unknown; defaultValue?: unknown; hydrated: boolean; valueUpdatePromise: Promise<void> | undefined; resolveValueUpdate: (() => void) | undefined; }; export declare type ControlledFieldState = { forms: { [formId: InternalFormId]: { [fieldName: string]: FieldState | undefined; }; }; register: (formId: InternalFormId, fieldName: string) => void; unregister: (formId: InternalFormId, fieldName: string) => void; getField: (formId: InternalFormId, fieldName: string) => FieldState | undefined; setValue: (formId: InternalFormId, fieldName: string, value: unknown) => void; hydrateWithDefault: (formId: InternalFormId, fieldName: string, defaultValue: unknown) => void; awaitValueUpdate: (formId: InternalFormId, fieldName: string) => Promise<void>; reset: (formId: InternalFormId) => void; }; export declare const useControlledFieldStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ControlledFieldState>, "setState"> & { setState(nextStateOrUpdater: ControlledFieldState | Partial<ControlledFieldState> | ((state: import("immer/dist/internal").WritableDraft<ControlledFieldState>) => void), shouldReplace?: boolean | undefined): void; }>;