@ray-js/components
Version:
Ray basic components
53 lines • 1.79 kB
JavaScript
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;