From 5c7990433e9df4a7972f882e5566ed17625f25a7 Mon Sep 17 00:00:00 2001 From: Welly Shen Date: Tue, 24 Nov 2020 23:55:01 +0800 Subject: [PATCH] refactor(useForm): change the `parser` option of controller to `parse` --- .changeset/mean-spoons-sing.md | 5 +++++ examples/src/BasicForm/Controller.tsx | 6 +++--- src/types/index.ts | 2 +- src/types/react-cool-form.d.ts | 4 ++-- src/useForm.ts | 7 ++----- 5 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 .changeset/mean-spoons-sing.md diff --git a/.changeset/mean-spoons-sing.md b/.changeset/mean-spoons-sing.md new file mode 100644 index 00000000..4ebde715 --- /dev/null +++ b/.changeset/mean-spoons-sing.md @@ -0,0 +1,5 @@ +--- +"react-cool-form": patch +--- + +refactor(useForm): change the `parser` option of controller to `parse` diff --git a/examples/src/BasicForm/Controller.tsx b/examples/src/BasicForm/Controller.tsx index 5204456e..e2debdd7 100644 --- a/examples/src/BasicForm/Controller.tsx +++ b/examples/src/BasicForm/Controller.tsx @@ -1,7 +1,7 @@ import { ChangeEvent, memo, useState } from "react"; import { Controller as ControllerType, - Parser, + Parse, FieldValidator, } from "react-cool-form"; @@ -31,7 +31,7 @@ const Controller = ({ // console.log(`LOG ==> ${name} is re-rendered`); const [value, setValue] = useState(defaultValue); - const parser: Parser> = (e) => + const parse: Parse> = (e) => e.target.value.length % 2 ? "case 1" : "case 2"; return ( @@ -42,7 +42,7 @@ const Controller = ({ validate, value, defaultValue: "welly", - // parser, + // parse, onChange: (e, val) => { setValue(val); // setValue(e.target.value); diff --git a/src/types/index.ts b/src/types/index.ts index c3ea9e55..1857c2b5 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -165,7 +165,7 @@ export interface Controller { validate?: FieldValidator; value?: any; defaultValue?: any; - parser?: (event: E) => any; + parse?: (event: E) => any; onChange?: (event: E, value?: any) => void; onBlur?: (event: FocusEvent) => void; } diff --git a/src/types/react-cool-form.d.ts b/src/types/react-cool-form.d.ts index c0ec57a6..a53333d2 100644 --- a/src/types/react-cool-form.d.ts +++ b/src/types/react-cool-form.d.ts @@ -128,7 +128,7 @@ declare module "react-cool-form" { (event?: SyntheticEvent): Promise<{ values?: V; errors?: Errors }>; } - export interface Parser { + export interface Parse { (event: E): R; } @@ -147,7 +147,7 @@ declare module "react-cool-form" { validate?: FieldValidator; value?: any; defaultValue?: any; - parser?: Parser; + parse?: Parse; onChange?: OnChange; onBlur?: OnBlur; } diff --git a/src/useForm.ts b/src/useForm.ts index 1c65b818..70c79dd1 100644 --- a/src/useForm.ts +++ b/src/useForm.ts @@ -684,10 +684,7 @@ export default ({ ); const controller = useCallback>( - ( - name, - { validate, value, defaultValue, parser, onChange, onBlur } = {} - ) => { + (name, { validate, value, defaultValue, parse, onChange, onBlur } = {}) => { if (!name) { warn('💡 react-cool-form > controller: Missing the "name" parameter.'); return {}; @@ -701,7 +698,7 @@ export default ({ name, value: !isUndefined(value) ? value : getState(`values.${name}`) ?? "", onChange: (e) => { - const parsedE = parser ? parser(e) : e; + const parsedE = parse ? parse(e) : e; let value; if (