@ray-js/components
Version:
Ray basic components
84 lines • 2.9 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import React, { useRef } from 'react';
import { useEventListener } from 'ahooks';
import { defaultPageContainerProps } from './props';
import handleProps from '../utils/handleProps';
const PageContainer = props => {
const {
children
} = props;
const currentNode = useRef(null);
useEventListener('clickoverlay', e => {
var _props$onClickOverlay;
(_props$onClickOverlay = props.onClickOverlay) === null || _props$onClickOverlay === void 0 || _props$onClickOverlay.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'clickoverlay',
origin: e
}));
}, {
target: currentNode
});
useEventListener('beforeenter', e => {
var _props$onBeforeEnter;
(_props$onBeforeEnter = props.onBeforeEnter) === null || _props$onBeforeEnter === void 0 || _props$onBeforeEnter.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'beforeenter',
origin: e
}));
}, {
target: currentNode
});
useEventListener('enter', e => {
var _props$onEnter;
(_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 || _props$onEnter.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'enter',
origin: e
}));
}, {
target: currentNode
});
useEventListener('afterenter', e => {
var _props$onAfterEnter;
(_props$onAfterEnter = props.onAfterEnter) === null || _props$onAfterEnter === void 0 || _props$onAfterEnter.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'afterenter',
origin: e
}));
}, {
target: currentNode
});
useEventListener('beforeleave', e => {
var _props$onBeforeLeave;
(_props$onBeforeLeave = props.onBeforeLeave) === null || _props$onBeforeLeave === void 0 || _props$onBeforeLeave.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'beforeleave',
origin: e
}));
}, {
target: currentNode
});
useEventListener('leave', e => {
var _props$onLeave;
(_props$onLeave = props.onLeave) === null || _props$onLeave === void 0 || _props$onLeave.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'leave',
origin: e
}));
}, {
target: currentNode
});
useEventListener('afterleave', e => {
var _props$onAfterLeave;
(_props$onAfterLeave = props.onAfterLeave) === null || _props$onAfterLeave === void 0 || _props$onAfterLeave.call(props, _objectSpread(_objectSpread({}, e), {}, {
type: 'afterleave',
origin: e
}));
}, {
target: currentNode
});
return (
/*#__PURE__*/
// @ts-ignore
React.createElement("v-page-container", _extends({}, handleProps(props), {
ref: currentNode
}), children)
);
};
PageContainer.defaultProps = defaultPageContainerProps;
export default PageContainer;