UNPKG

@ray-js/components

Version:

Ray basic components

56 lines 1.7 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; const _excluded = ["className", "onInput", "onFocus", "onBlur"]; import * as React from 'react'; import clsx from 'clsx'; import { useEventListener } from 'ahooks'; import styles from './index.module.less'; import handleProps from '../utils/handleProps'; const Textarea = props => { const { className, onInput, onFocus, onBlur } = props, restProps = _objectWithoutProperties(props, _excluded); const currentNode = React.useRef(null); useEventListener('input', e => { onInput === null || onInput === void 0 || onInput(_objectSpread(_objectSpread({}, e), {}, { type: 'input', value: e.detail.value, origin: e })); }, { target: currentNode }); useEventListener('focus', e => { onFocus === null || onFocus === void 0 || onFocus(_objectSpread(_objectSpread({}, e), {}, { type: 'focus', value: e.detail.value, origin: e })); }, { target: currentNode }); useEventListener('blur', e => { onBlur === null || onBlur === void 0 || onBlur(_objectSpread(_objectSpread({}, e), {}, { type: 'blur', value: e.detail.value, origin: e })); }, { target: currentNode }); return ( /*#__PURE__*/ // @ts-ignore React.createElement("v-textarea", _extends({}, handleProps(restProps), { ref: currentNode, class: clsx('ray-textarea', styles.textarea, className) })) ); }; Textarea.displayName = 'Textarea'; export default Textarea;