diff --git a/src/EmailWidget/EmailWidget.tsx b/src/EmailWidget/EmailWidget.tsx new file mode 100644 index 0000000..4a6bf2b --- /dev/null +++ b/src/EmailWidget/EmailWidget.tsx @@ -0,0 +1,54 @@ +import React from 'react'; + +import FormControl from '@material-ui/core/FormControl'; +import TextField from '@material-ui/core/TextField'; + +import { WidgetProps } from 'react-jsonschema-form'; + +const EmailWidget = ({ + id, + required, + readonly, + disabled, + label, + value, + onChange, + onBlur, + onFocus, + autofocus, + options, + schema, +}: WidgetProps) => { + const _onChange = ({ + target: { value }, + }: React.ChangeEvent) => + onChange(value === '' ? options.emptyValue : value); + const _onBlur = ({ target: { value } }: React.FocusEvent) => + onBlur(id, value); + const _onFocus = ({ + target: { value }, + }: React.FocusEvent) => onFocus(id, value); + + return ( + + + + ); +}; + +export default EmailWidget; diff --git a/src/EmailWidget/index.tsx b/src/EmailWidget/index.tsx new file mode 100644 index 0000000..c48979e --- /dev/null +++ b/src/EmailWidget/index.tsx @@ -0,0 +1,2 @@ +export { default } from './EmailWidget'; +export * from './EmailWidget'; diff --git a/src/TextWidget/TextWidget.tsx b/src/TextWidget/TextWidget.tsx index c642cd3..9b43ca3 100644 --- a/src/TextWidget/TextWidget.tsx +++ b/src/TextWidget/TextWidget.tsx @@ -41,7 +41,7 @@ const TextWidget = ({ autoFocus={autofocus} required={required} disabled={disabled || readonly} - type={schema.type as string} + type="text" value={value ? value : ''} onChange={_onChange} onBlur={_onBlur} diff --git a/src/Widgets/Widgets.ts b/src/Widgets/Widgets.ts index bd04591..b8abb63 100644 --- a/src/Widgets/Widgets.ts +++ b/src/Widgets/Widgets.ts @@ -7,6 +7,7 @@ import SelectWidget from '../SelectWidget/SelectWidget'; import TextareaWidget from '../TextareaWidget/TextareaWidget'; import TextWidget from '../TextWidget/TextWidget'; import UpDownWidget from '../UpDownWidget/UpDownWidget'; +import EmailWidget from '../EmailWidget/EmailWidget'; export default { CheckboxWidget, @@ -18,4 +19,5 @@ export default { TextareaWidget, TextWidget, UpDownWidget, + EmailWidget, };