linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
34 lines (32 loc) β’ 1.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useSticky;
var React = _interopRequireWildcard(require("react"));
var _canUseDom = _interopRequireDefault(require("rc-util/lib/Dom/canUseDom"));
// fix ssr render
const defaultContainer = (0, _canUseDom.default)() ? window : null;
/** Sticky header hooks */
function useSticky(sticky, prefixCls) {
const {
offsetHeader = 0,
offsetSummary = 0,
offsetScroll = 0,
getContainer = () => defaultContainer
} = typeof sticky === 'object' ? sticky : {};
const container = getContainer() || defaultContainer;
return React.useMemo(() => {
const isSticky = !!sticky;
return {
isSticky,
stickyClassName: isSticky ? `${prefixCls}-sticky-holder` : '',
offsetHeader,
offsetSummary,
offsetScroll,
container
};
}, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);
}