@boomerang-io/utils
Version:
A library of reusable utilities and hooks for React webapps on the Boomerang platform.
30 lines (29 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _useMutationObserver = _interopRequireDefault(require("../useMutationObserver"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const htmlElem = document.getElementsByTagName("html")[0];
const HTML_MODAL_CLASS = "bx--bmrg-html-modal-is-open";
function useIsModalOpen() {
const [isModalOpen, setIsModalOpen] = (0, _react.useState)(false);
const htmlRef = (0, _react.useRef)(htmlElem);
(0, _useMutationObserver.default)(htmlRef, mutationRecords => {
const record = mutationRecords.find(record => record.type === "attributes");
if ((record === null || record === void 0 ? void 0 : record.target.className) === HTML_MODAL_CLASS) {
setIsModalOpen(true);
} else {
setIsModalOpen(false);
}
}, {
attributes: true,
characterData: false,
subtree: false,
childList: false
});
return isModalOpen;
}
var _default = exports.default = useIsModalOpen;