@gravel-form/antd
Version:
A flexible middlewares driven json schema form with Ant Design
1 lines • 1.09 kB
Source Map (JSON)
{"version":3,"sources":["middlewares/ChangeToBlueMw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAoB/D,CAAC;AACF,eAAe,cAAc,CAAC","file":"ChangeToBlueMw.d.ts","sourcesContent":["import * as React from 'react';\nimport { MiddlewareProps } from '../core';\n\nexport const ChangeToBlurMw: React.ComponentType<MiddlewareProps> = (props) => {\n const { schema, next, data, onChange } = props;\n const focus = React.useRef(false);\n const [value, setValue] = React.useState<unknown>(null);\n\n if (typeof schema === 'boolean' || schema.type === 'object' || schema.type === 'array') return next(props);\n return (\n <div\n onFocus={() => {\n focus.current = true;\n setValue(data);\n }}\n onBlur={() => {\n focus.current = false;\n onChange(value);\n }}\n >\n {next({ ...props, data: focus.current ? value : data, onChange: focus.current ? setValue : onChange })}\n </div>\n );\n};\nexport default ChangeToBlurMw;\n"]}