@atlaskit/page-layout
Version:
A collection of components which let you compose an application's page layout.
36 lines (35 loc) • 1.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _constants = require("../constants");
var getIsCollapsing = function getIsCollapsing() {
// SSR bail-out because document is undefined on the server
if (typeof document === 'undefined') {
return false;
}
return document.documentElement.getAttribute(_constants.IS_SIDEBAR_COLLAPSING) === 'true';
};
var useIsSidebarCollapsing = function useIsSidebarCollapsing() {
var _useState = (0, _react.useState)(getIsCollapsing),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
isCollapsing = _useState2[0],
setIsCollapsing = _useState2[1];
(0, _react.useEffect)(function () {
var observer = new MutationObserver(function () {
setIsCollapsing(getIsCollapsing);
});
observer.observe(document.documentElement, {
attributeFilter: [_constants.IS_SIDEBAR_COLLAPSING]
});
return function () {
observer.disconnect();
};
}, []);
return isCollapsing;
};
var _default = exports.default = useIsSidebarCollapsing;