You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
exports.__esModule = true;
|
|
exports.default = useOverlayOffset;
|
|
|
|
var _react = require("react");
|
|
|
|
var _hasClass = _interopRequireDefault(require("dom-helpers/hasClass"));
|
|
|
|
var _ThemeProvider = require("./ThemeProvider");
|
|
|
|
var _Popover = _interopRequireDefault(require("./Popover"));
|
|
|
|
// This is meant for internal use.
|
|
// This applies a custom offset to the overlay if it's a popover.
|
|
function useOverlayOffset(customOffset) {
|
|
const overlayRef = (0, _react.useRef)(null);
|
|
const popoverClass = (0, _ThemeProvider.useBootstrapPrefix)(undefined, 'popover');
|
|
const offset = (0, _react.useMemo)(() => ({
|
|
name: 'offset',
|
|
options: {
|
|
offset: () => {
|
|
if (overlayRef.current && (0, _hasClass.default)(overlayRef.current, popoverClass)) {
|
|
return customOffset || _Popover.default.POPPER_OFFSET;
|
|
}
|
|
|
|
return customOffset || [0, 0];
|
|
}
|
|
}
|
|
}), [customOffset, popoverClass]);
|
|
return [overlayRef, [offset]];
|
|
}
|
|
|
|
module.exports = exports.default; |