UNPKG

@sparkstone/solid-validation

Version:

A lightweight form validation library for Solid.js with PocketBase integration.

31 lines (30 loc) 1.49 kB
type Falsy = false | 0 | '' | null | undefined | void; type MaybePromise<T> = T | Promise<T>; type ValidatorResponse = MaybePromise<string | Falsy>; export type Validator<Element> = Falsy | ((el: Element) => ValidatorResponse); type ValidatedElement = HTMLElement & { name: string; }; type OnFormSubmit<ErrorFields extends Object, Payload> = (el: Payload) => MaybePromise<void | Partial<ErrorFields>>; declare module 'solid-js' { namespace JSX { interface Directives { formSubmit: (callback: HTMLFormElement) => any; validate: boolean | Validator<any>[]; } } } export declare function useForm<ErrorFields extends Object>({ errorClass }?: { errorClass?: string; }): { validate: <Element_1 extends ValidatedElement>(ref: Element_1, accessor?: () => Falsy | Validator<Element_1>[]) => void; formSubmit: (ref: HTMLFormElement, accessor: () => OnFormSubmit<ErrorFields, HTMLFormElement>) => void; submit: <Payload>(callback: OnFormSubmit<ErrorFields, Payload>, ref: Payload) => Promise<void>; errors: Partial<ErrorFields>; isSubmitting: import("solid-js").Accessor<boolean>; isSubmitted: import("solid-js").Accessor<boolean>; validateField: (fieldName: keyof ErrorFields) => Promise<boolean>; getFieldValue: (fieldName: keyof ErrorFields) => string; validateRef: <Element_2 extends ValidatedElement>(...args: Validator<Element_2>[]) => (ref: Element_2) => void; }; export {};