smartsell-ui-kit 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +41 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +41 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1010,6 +1010,40 @@ var createTitleId = (title) => {
|
|
|
1010
1010
|
}
|
|
1011
1011
|
return "smartsell-modal-dialog";
|
|
1012
1012
|
};
|
|
1013
|
+
var modalScrollLockStates = /* @__PURE__ */ new WeakMap();
|
|
1014
|
+
var acquireModalScrollLock = (documentRef) => {
|
|
1015
|
+
const body = documentRef.body;
|
|
1016
|
+
if (!body) {
|
|
1017
|
+
return void 0;
|
|
1018
|
+
}
|
|
1019
|
+
const currentState = modalScrollLockStates.get(documentRef);
|
|
1020
|
+
if (currentState) {
|
|
1021
|
+
currentState.count += 1;
|
|
1022
|
+
} else {
|
|
1023
|
+
modalScrollLockStates.set(documentRef, {
|
|
1024
|
+
count: 1,
|
|
1025
|
+
previousOverflow: body.style.overflow
|
|
1026
|
+
});
|
|
1027
|
+
body.style.overflow = "hidden";
|
|
1028
|
+
}
|
|
1029
|
+
let released = false;
|
|
1030
|
+
return () => {
|
|
1031
|
+
if (released) {
|
|
1032
|
+
return;
|
|
1033
|
+
}
|
|
1034
|
+
released = true;
|
|
1035
|
+
const state = modalScrollLockStates.get(documentRef);
|
|
1036
|
+
if (!state) {
|
|
1037
|
+
return;
|
|
1038
|
+
}
|
|
1039
|
+
if (state.count > 1) {
|
|
1040
|
+
state.count -= 1;
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
1043
|
+
body.style.overflow = state.previousOverflow;
|
|
1044
|
+
modalScrollLockStates.delete(documentRef);
|
|
1045
|
+
};
|
|
1046
|
+
};
|
|
1013
1047
|
var MODAL_HEADER_CONTROL_METRICS = getControlMetrics("sm");
|
|
1014
1048
|
var MODAL_HEADER_CONTROL_SIZE = MODAL_HEADER_CONTROL_METRICS.height;
|
|
1015
1049
|
var MODAL_HEADER_ICON_SIZE = 18;
|
|
@@ -1250,11 +1284,15 @@ function UnifiedModal({
|
|
|
1250
1284
|
}
|
|
1251
1285
|
}, [maximized]);
|
|
1252
1286
|
useEffect3(() => {
|
|
1253
|
-
if (!isOpen || typeof
|
|
1287
|
+
if (!isOpen || typeof document === "undefined") {
|
|
1288
|
+
return;
|
|
1289
|
+
}
|
|
1290
|
+
return acquireModalScrollLock(document);
|
|
1291
|
+
}, [isOpen]);
|
|
1292
|
+
useEffect3(() => {
|
|
1293
|
+
if (!isOpen || typeof window === "undefined") {
|
|
1254
1294
|
return;
|
|
1255
1295
|
}
|
|
1256
|
-
const previousOverflow = document.body.style.overflow;
|
|
1257
|
-
document.body.style.overflow = "hidden";
|
|
1258
1296
|
const handleKeyDown = (event) => {
|
|
1259
1297
|
if (!shouldDisableDismiss && closeOnEscape && event.key === "Escape") {
|
|
1260
1298
|
onClose();
|
|
@@ -1262,7 +1300,6 @@ function UnifiedModal({
|
|
|
1262
1300
|
};
|
|
1263
1301
|
window.addEventListener("keydown", handleKeyDown);
|
|
1264
1302
|
return () => {
|
|
1265
|
-
document.body.style.overflow = previousOverflow;
|
|
1266
1303
|
window.removeEventListener("keydown", handleKeyDown);
|
|
1267
1304
|
};
|
|
1268
1305
|
}, [closeOnEscape, isOpen, onClose, shouldDisableDismiss]);
|