UNPKG

use-async-modal

Version:

Show promised based modal imperatively using hook for React.js.

42 lines (41 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.blockBodyScroll = exports.removeClassesFromModalContainer = exports.addClassesToModalContainer = exports.getModalContainerById = exports.cssPropertiesToString = exports.getRandomPostfix = void 0; var getRandomPostfix = function () { return Math.random().toString(36).substring(2); }; exports.getRandomPostfix = getRandomPostfix; var cssPropertiesToString = function (properties) { return Object.keys(properties).reduce(function (inlineCss, key) { var cssPropertiesKey = key .split(/(?=[A-Z])/) .join("-") .toLowerCase(); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore var cssPropertiesValue = properties[key]; return inlineCss + (cssPropertiesKey + ": " + cssPropertiesValue + ";"); }, ""); }; exports.cssPropertiesToString = cssPropertiesToString; var getModalContainerById = function (containerIdPostfix) { return document.querySelector("div#modal__" + containerIdPostfix); }; exports.getModalContainerById = getModalContainerById; var addClassesToModalContainer = function (modalContainer, classes) { var _a; if (!modalContainer) return; classes && (_a = modalContainer.classList).add.apply(_a, classes === null || classes === void 0 ? void 0 : classes.split(" ")); }; exports.addClassesToModalContainer = addClassesToModalContainer; var removeClassesFromModalContainer = function (modalContainer, classes) { var _a; if (!modalContainer) return; classes && (_a = modalContainer.classList).remove.apply(_a, classes === null || classes === void 0 ? void 0 : classes.split(" ")); }; exports.removeClassesFromModalContainer = removeClassesFromModalContainer; var blockBodyScroll = function (block) { var prop = block ? "hidden" : ""; document.body.style.overflow = prop; }; exports.blockBodyScroll = blockBodyScroll;