use-async-modal
Version:
Show promised based modal imperatively using hook for React.js.
42 lines (41 loc) • 1.97 kB
JavaScript
;
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;