UNPKG

@ray-js/components

Version:

Ray basic components

64 lines 1.77 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import * as React from 'react'; import { useTouch } from '@ray-js/framework-shared'; import { useEventListener } from 'ahooks'; import handleProps from '../utils/handleProps'; let countArr = 1; const Picker = props => { const { onTouchStart, onTouchMove, onTouchEnd, onTouchCancel, onClick, children } = props; const currentNode = React.useRef(null); useEventListener('change', e => { var _props$onChange; (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, _objectSpread(_objectSpread({}, e), {}, { type: 'change', value: e.detail.value, origin: e })); }, { target: currentNode }); useEventListener('cancel', e => { var _props$onCancel; (_props$onCancel = props.onCancel) === null || _props$onCancel === void 0 || _props$onCancel.call(props, _objectSpread(_objectSpread({}, e), {}, { type: 'cancel', origin: e })); }, { target: currentNode }); const [, handlers] = useTouch({ onTouchStart, onTouchMove, onTouchEnd, onTouchCancel, onClick }); const multiarr = arr => { for (let i = 0; i < arr.length; i++) { if (arr[i] instanceof Array) { countArr++; arr = arr[i]; multiarr(arr); } } return countArr; }; return ( /*#__PURE__*/ // @ts-ignore React.createElement("v-picker", _extends({}, handleProps(props), handlers, { ref: currentNode, mode: multiarr(props.range) > 1 ? 'multiSelector' : 'selector' }), children) ); }; Picker.displayName = 'Picker'; export default Picker;