@gravel-form/antd
Version:
A flexible middlewares driven json schema form with Ant Design
1 lines • 1.93 kB
Source Map (JSON)
{"version":3,"sources":["middlewares/ChangeToBlur2Mw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,eAAgB,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;IACnE,KAAK;;MAA8B;IACnC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAQ;IACtC,KAAK,UAAS;IAEd,OAAO,aAIL;IAEF,MAAM,aAKJ;IAEF,iBAAiB;IASjB,oBAAoB;IAOpB,MAAM;CAaP;AACD,eAAe,eAAe,CAAC","file":"ChangeToBlur2Mw.d.ts","sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { MiddlewareProps } from '../core';\n\nexport class ChangeToBlur2Mw extends React.Component<MiddlewareProps> {\n state = { value: this.props.data };\n element: Element | null | Text = null;\n focus = false;\n\n onFocus = () => {\n const { data } = this.props;\n this.focus = true;\n this.setState({ value: data });\n };\n\n onBlur = () => {\n const { onChange } = this.props;\n const { value } = this.state;\n this.focus = false;\n onChange(value);\n };\n\n componentDidMount() {\n const { schema } = this.props;\n if (typeof schema === 'boolean' || schema.type === 'object' || schema.type === 'array') return;\n this.element = ReactDOM.findDOMNode(this);\n if (this.element) {\n this.element.addEventListener('focus', this.onFocus, true);\n this.element.addEventListener('blur', this.onBlur, true);\n }\n }\n componentWillUnmount() {\n if (this.element) {\n this.element.removeEventListener('focus', this.onFocus);\n this.element.removeEventListener('blur', this.onBlur);\n }\n }\n\n render() {\n const { data, next, onChange } = this.props;\n const { value } = this.state;\n return next({\n ...this.props,\n data: this.focus ? value : data,\n onChange: this.focus\n ? (value: any) => {\n this.setState({ value });\n }\n : onChange,\n });\n }\n}\nexport default ChangeToBlur2Mw;\n"]}