UNPKG

@ray-js/components

Version:

Ray basic components

53 lines 1.79 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 = ["onScroll", "onScrollToUpper", "onScrollToLower"]; import React from 'react'; import { useEventListener } from 'ahooks'; import { ScrollView as ScrollViewDef } from '@ray-js/adapter'; import handleProps from '../utils/handleProps'; const ScrollView = props => { const { onScroll, onScrollToUpper, onScrollToLower } = props, restProps = _objectWithoutProperties(props, _excluded); const currentNode = React.useRef(null); useEventListener('scroll', e => { onScroll === null || onScroll === void 0 || onScroll(_objectSpread(_objectSpread(_objectSpread({}, e), {}, { type: 'scroll' }, e.detail), {}, { origin: e })); }, { target: currentNode }); useEventListener('scrolltoupper', e => { onScrollToUpper === null || onScrollToUpper === void 0 || onScrollToUpper(_objectSpread(_objectSpread(_objectSpread({}, e), {}, { type: 'scrolltoupper' }, e.detail), {}, { origin: e })); }, { target: currentNode }); useEventListener('scrolltolower', e => { onScrollToLower === null || onScrollToLower === void 0 || onScrollToLower(_objectSpread(_objectSpread(_objectSpread({}, e), {}, { type: 'scrolltolower' }, e.detail), {}, { origin: e })); }, { target: currentNode }); return ( /*#__PURE__*/ // @ts-ignore React.createElement("v-scroll-view", _extends({}, handleProps(restProps), { ref: currentNode }), props.children) ); }; ScrollView.defaultProps = ScrollViewDef.defaultProps; export default ScrollView;