@shopify/react-form
Version:
Manage react forms tersely and safely-typed with no magic using React hooks.
33 lines (32 loc) • 1.24 kB
TypeScript
/// <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 {};