UNPKG

@shopify/react-form

Version:

Manage react forms tersely and safely-typed with no magic using React hooks.

33 lines (32 loc) 1.24 kB
/// <reference types="react" /> import { FieldState, ErrorValue } from '../../types'; interface UpdateErrorAction { type: 'updateError'; payload: ErrorValue; } interface ResetAction { type: 'reset'; } interface UpdateAction<Value> { type: 'update'; payload: Value; } interface NewDefaultAction<Value> { type: 'newDefaultValue'; payload: Value; } export declare function updateAction<Value>(value: Value): UpdateAction<Value>; export declare function resetAction(): ResetAction; export declare function newDefaultAction<Value>(value: Value): NewDefaultAction<Value>; export declare function updateErrorAction(error: ErrorValue): UpdateErrorAction; export declare type FieldAction<Value> = UpdateErrorAction | ResetAction | UpdateAction<Value> | NewDefaultAction<Value>; export declare function reduceField<Value>(state: FieldState<Value>, action: FieldAction<Value>): { dirty: boolean; value: Value; touched: boolean; defaultValue: Value; error: string | undefined; }; export declare function useFieldReducer<Value>(value: Value): [FieldState<Value>, import("react").Dispatch<FieldAction<Value>>]; export declare function initialFieldState<Value>(value: Value): FieldState<Value>; export {};