UNPKG

@react-hookz/web

Version:

React hooks done right, for browser and SSR.

18 lines (17 loc) 1.08 kB
import { DependencyList, Dispatch } from 'react'; import { IInitialState, INextState } from '../util/resolveHookState'; export interface IValidityState extends Record<any, any> { isValid: boolean | undefined; } export declare type IValidatorImmediate<V extends IValidityState = IValidityState> = () => V; export declare type IValidatorDeferred<V extends IValidityState = IValidityState> = (done: Dispatch<INextState<V>>) => any; export declare type IValidator<V extends IValidityState = IValidityState> = IValidatorImmediate<V> | IValidatorDeferred<V>; export declare type IUseValidatorReturn<V extends IValidityState> = [V, () => void]; /** * Performs validation when any of provided dependencies has changed. * * @param validator Function that performs validation. * @param deps Dependencies list that passed straight to underlying `useEffect`. * @param initialValidity Initial validity state. */ export declare function useValidator<V extends IValidityState>(validator: IValidator<V>, deps: DependencyList, initialValidity?: IInitialState<V>): IUseValidatorReturn<V>;