x25 19.1.6 → 19.1.7

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.
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { ModalWindowProps } from "./types";
3
- declare const ModalWindow: (props: ModalWindowProps) => React.JSX.Element;
3
+ declare const ModalWindow: (props: ModalWindowProps) => React.ReactPortal;
4
4
  export default ModalWindow;
@@ -1,85 +1,143 @@
1
- import React, { useEffect, useRef, useState } from "react";
1
+ import classnames from "classnames";
2
+ import React, { useCallback, useEffect, useId, useRef, useState } from "react";
3
+ import { createPortal } from "react-dom";
2
4
  import { useDispatch } from "react-redux";
3
5
  import { hideModal } from "./actions.js";
4
- const ModalWindow = (props) => {
5
- const delay = 150, { size = "", Footer, Header } = props, [show, setShow] = useState(false), [waitingToClose, setWaitingToClose] = useState(false), [enterTimeout, setEnterTimeout] = useState(0), [exitTimeout, setExitTimeout] = useState(0), bodyRef = useRef(null), dialogRef = useRef(null), dispatch = useDispatch(), tryToClose = (cbTryToClose) => {
6
- const closeModal = () => {
7
- if (!props.preventDispatchHideModal) {
6
+ const ENTER_DELAY = 150, EXIT_DELAY = 150, BASE_Z_INDEX = 1055, Z_INDEX_STEP = 20, FOCUSABLE_SELECTOR = [
7
+ "a[href]",
8
+ "button:not([disabled])",
9
+ "input:not([disabled])",
10
+ "select:not([disabled])",
11
+ "textarea:not([disabled])",
12
+ "[tabindex]:not([tabindex=\"-1\"])",
13
+ ].join(", "), ModalWindow = (props) => {
14
+ const { size = "", Footer, Header, stackIndex = 0, } = props, [show, setShow] = useState(false), bodyRef = useRef(null), dialogRef = useRef(null), enterTimeoutRef = useRef(0), exitTimeoutRef = useRef(0), isClosingRef = useRef(false), previousFocusRef = useRef(null), mouseDownTargetRef = useRef(null), propsRef = useRef(props), titleId = useId(), dispatch = useDispatch();
15
+ propsRef.current = props;
16
+ const tryToClose = useCallback((cb) => {
17
+ if (isClosingRef.current) {
18
+ return;
19
+ }
20
+ isClosingRef.current = true;
21
+ if (enterTimeoutRef.current) {
22
+ window.clearTimeout(enterTimeoutRef.current);
23
+ enterTimeoutRef.current = 0;
24
+ }
25
+ if (exitTimeoutRef.current) {
26
+ window.clearTimeout(exitTimeoutRef.current);
27
+ }
28
+ setShow(false);
29
+ exitTimeoutRef.current = window.setTimeout(() => {
30
+ const latest = propsRef.current;
31
+ if (!latest.preventDispatchHideModal) {
8
32
  dispatch(hideModal());
9
33
  }
10
- if (typeof props.onClose === "function") {
11
- props.onClose();
34
+ if (typeof latest.onClose === "function") {
35
+ latest.onClose();
36
+ }
37
+ if (typeof cb === "function") {
38
+ cb();
39
+ }
40
+ }, EXIT_DELAY);
41
+ }, [dispatch]);
42
+ useEffect(() => {
43
+ previousFocusRef.current = document.activeElement;
44
+ enterTimeoutRef.current = window.setTimeout(() => {
45
+ setShow(true);
46
+ if (dialogRef.current) {
47
+ const alreadyFocused = dialogRef.current.contains(document.activeElement);
48
+ if (!alreadyFocused) {
49
+ const target = dialogRef.current.querySelector(FOCUSABLE_SELECTOR);
50
+ (target || dialogRef.current).focus();
51
+ }
52
+ }
53
+ }, ENTER_DELAY);
54
+ return () => {
55
+ if (enterTimeoutRef.current) {
56
+ window.clearTimeout(enterTimeoutRef.current);
57
+ }
58
+ if (exitTimeoutRef.current) {
59
+ window.clearTimeout(exitTimeoutRef.current);
12
60
  }
13
- if (typeof cbTryToClose === "function") {
14
- cbTryToClose();
61
+ const previous = previousFocusRef.current;
62
+ if (previous && typeof previous.focus === "function" && document.contains(previous)) {
63
+ window.setTimeout(() => {
64
+ previous.focus();
65
+ }, 0);
15
66
  }
16
67
  };
17
- clearTimeout(enterTimeout);
18
- clearTimeout(exitTimeout);
19
- setWaitingToClose(true);
20
- setShow(false);
21
- const theExit = setTimeout(() => {
22
- closeModal();
23
- }, delay);
24
- setExitTimeout(theExit);
25
- };
68
+ }, []);
26
69
  useEffect(() => {
27
- const handleClickOutside = (event) => {
28
- const isClickOutsideButNotOnButton = (bodyRef.current && bodyRef.current.contains(event.target) &&
29
- !dialogRef.current.contains(event.target));
30
- if (isClickOutsideButNotOnButton) {
70
+ const handleMouseDown = (event) => {
71
+ mouseDownTargetRef.current = event.target;
72
+ }, handleMouseUp = (event) => {
73
+ const downTarget = mouseDownTargetRef.current;
74
+ mouseDownTargetRef.current = null;
75
+ if (downTarget !== event.target) {
76
+ return;
77
+ }
78
+ if (!bodyRef.current || !dialogRef.current) {
79
+ return;
80
+ }
81
+ const target = event.target, inBackdrop = bodyRef.current.contains(target), inDialog = dialogRef.current.contains(target);
82
+ if (inBackdrop && !inDialog) {
31
83
  tryToClose();
32
84
  }
33
85
  };
34
- document.addEventListener("mousedown", handleClickOutside);
86
+ document.addEventListener("mousedown", handleMouseDown);
87
+ document.addEventListener("mouseup", handleMouseUp);
35
88
  return () => {
36
- document.removeEventListener("mousedown", handleClickOutside);
89
+ document.removeEventListener("mousedown", handleMouseDown);
90
+ document.removeEventListener("mouseup", handleMouseUp);
37
91
  };
38
- }, [bodyRef]);
92
+ }, [tryToClose]);
39
93
  useEffect(() => {
40
- const keyPressed = (event) => {
41
- if (event.key === "Escape" && !props.doNotCloseByEscape) {
94
+ const handleKeyDown = (event) => {
95
+ if (event.key === "Escape" && !propsRef.current.doNotCloseByEscape) {
42
96
  tryToClose();
97
+ return;
98
+ }
99
+ if (event.key === "Tab" && dialogRef.current) {
100
+ const focusable = Array.from(dialogRef.current.querySelectorAll(FOCUSABLE_SELECTOR));
101
+ if (focusable.length === 0) {
102
+ event.preventDefault();
103
+ dialogRef.current.focus();
104
+ return;
105
+ }
106
+ const [first] = focusable, last = focusable[focusable.length - 1], active = document.activeElement;
107
+ if (event.shiftKey && active === first) {
108
+ event.preventDefault();
109
+ last.focus();
110
+ }
111
+ else if (!event.shiftKey && active === last) {
112
+ event.preventDefault();
113
+ first.focus();
114
+ }
43
115
  }
44
116
  };
45
- if (!props.doNotCloseByEscape) {
46
- document.addEventListener("keydown", keyPressed, false);
47
- }
117
+ document.addEventListener("keydown", handleKeyDown, false);
48
118
  return () => {
49
- if (!props.doNotCloseByEscape) {
50
- document.removeEventListener("keydown", keyPressed, false);
51
- }
119
+ document.removeEventListener("keydown", handleKeyDown, false);
52
120
  };
53
- }, [!props.doNotCloseByEscape]);
54
- useEffect(() => {
55
- if (!show && !waitingToClose) {
56
- const theEnter = setTimeout(() => {
57
- setShow(true);
58
- }, delay);
59
- setEnterTimeout(theEnter);
60
- }
61
- }, [show, waitingToClose]);
62
- useEffect(() => () => {
63
- clearTimeout(enterTimeout);
64
- clearTimeout(exitTimeout);
65
- });
121
+ }, [tryToClose]);
66
122
  useEffect(() => {
67
123
  if (props.pleaseClose) {
68
124
  tryToClose();
69
125
  }
70
- }, [props.pleaseClose]);
71
- return (React.createElement("div", { className: `modal fade d-block ${show ? "show" : ""}`, ref: bodyRef, style: {
126
+ }, [props.pleaseClose, tryToClose]);
127
+ const zIndex = BASE_Z_INDEX + (stackIndex * Z_INDEX_STEP), dialogClass = classnames("modal-dialog", { [`modal-${size}`]: size });
128
+ return createPortal(React.createElement("div", { "aria-labelledby": titleId, "aria-modal": "true", className: classnames("modal", "fade", "d-block", { show }), ref: bodyRef, role: "dialog", style: {
72
129
  background: "rgb(0 0 0 / 45%)",
130
+ zIndex,
73
131
  } },
74
- React.createElement("div", { className: `modal-dialog modal-${size}`, ref: dialogRef, role: "document" },
132
+ React.createElement("div", { className: dialogClass, ref: dialogRef, role: "document", tabIndex: -1 },
75
133
  React.createElement("div", { className: "modal-content" },
76
134
  props.customContent ? (React.cloneElement(props.children, { tryToClose })) : (React.createElement(React.Fragment, null,
77
135
  React.createElement("div", { className: "modal-header" },
78
- typeof Header === "undefined" ? (React.createElement("h5", { className: "modal-title" }, props.title)) : (React.createElement(Header, Object.assign({ title: props.title }, props.headerProps, { tryToClose: tryToClose }))),
79
- React.createElement("button", { "aria-label": "Close", className: "btn btn-link", "data-bs-dismiss": "modal", onClick: tryToClose, type: "button" },
80
- React.createElement("i", { className: "fa fa-times" }))),
136
+ typeof Header === "undefined" ? (React.createElement("h5", { className: "modal-title", id: titleId }, props.title)) : (React.createElement(Header, Object.assign({}, props.headerProps, { title: props.title, titleId: titleId, tryToClose: tryToClose }))),
137
+ React.createElement("button", { "aria-label": "Close", className: "btn btn-link", onClick: () => tryToClose(), type: "button" },
138
+ React.createElement("i", { "aria-hidden": "true", className: "fa fa-times" }))),
81
139
  React.createElement("div", { className: "modal-body" }, props.doNoPassTryToCloseToBody ? props.children : React.cloneElement(props.children, { tryToClose })))),
82
- typeof Footer === "undefined" ? null : (React.createElement(Footer, Object.assign({}, props.footerProps, { tryToClose: tryToClose })))))));
140
+ typeof Footer === "undefined" ? null : (React.createElement(Footer, Object.assign({}, props.footerProps, { tryToClose: tryToClose })))))), document.body);
83
141
  };
84
142
  export default ModalWindow;
85
143
  //# sourceMappingURL=ModalWindow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalWindow.js","sourceRoot":"","sources":["../../src/Modal/ModalWindow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModalWindow.js","sourceRoot":"","sources":["../../src/Modal/ModalWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MACE,WAAW,GAAG,GAAG,EACjB,UAAU,GAAG,GAAG,EAChB,YAAY,GAAG,IAAI,EACnB,YAAY,GAAG,EAAE,EACjB,kBAAkB,GAAG;IACnB,SAAS;IACT,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;IAC1B,mCAAmC;CACpC,CAAC,IAAI,CAAC,IAAI,CAAC,EAEZ,WAAW,GAAG,CAAC,KAAwB,EAAE,EAAE;IACzC,MAAM,EACF,IAAI,GAAG,EAAE,EACT,MAAM,EACN,MAAM,EACN,UAAU,GAAG,CAAC,GACf,GAAG,KAAK,EAGT,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAEjC,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,EACtC,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,EACxC,eAAe,GAAG,MAAM,CAAS,CAAC,CAAC,EACnC,cAAc,GAAG,MAAM,CAAS,CAAC,CAAC,EAClC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,EAC5B,gBAAgB,GAAG,MAAM,CAAqB,IAAI,CAAC,EACnD,kBAAkB,GAAG,MAAM,CAAqB,IAAI,CAAC,EACrD,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EAExB,OAAO,GAAG,KAAK,EAAE,EAEjB,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE3B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAgB,EAAE,EAAE;QAClD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC;QAEf,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEhC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;gBACrC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,EAAE,EAAE,CAAC;YACP,CAAC;QACH,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAmC,CAAC;QAExE,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YAEd,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAE1E,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAc,kBAAkB,CAAC,CAAC;oBAEhF,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC,EAAE,WAAW,CAAC,CAAC;QAEhB,OAAO,GAAG,EAAE;YACV,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAE1C,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpF,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACrB,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC,EAAE,CAAC,CAAC,CAAC;YACR,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,CAAC,KAAkB,EAAE,EAAE;YAC3C,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5C,CAAC,EAED,aAAa,GAAG,CAAC,KAAkB,EAAE,EAAE;YACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAE9C,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YAElC,IAAI,UAAU,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,MACE,MAAM,GAAG,KAAK,CAAC,MAAc,EAC7B,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7C,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEhD,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEJ,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACxD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBACnE,UAAU,EAAE,CAAC;gBAEb,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CACpE,CAAC;gBAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAE1B,OAAO;gBACT,CAAC;gBAED,MACE,CAAC,KAAK,CAAC,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EACtC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;gBAElC,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACvC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAE3D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpC,MACE,MAAM,GAAG,YAAY,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC,EACnD,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,YAAY,CACjB,gDACmB,OAAO,gBACb,MAAM,EACjB,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAC3D,GAAG,EAAE,OAAO,EACZ,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;YACL,UAAU,EAAE,kBAAkB;YAC9B,MAAM;SACP;QACD,6BACE,SAAS,EAAE,WAAW,EACtB,GAAG,EAAE,SAAS,EACd,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,CAAC,CAAC;YACZ,6BAAK,SAAS,EAAC,eAAe;gBAE1B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CACnD,CAAC,CAAC,CAAC,CACF;oBACE,6BAAK,SAAS,EAAC,cAAc;wBAEzB,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAC9B,4BAAI,SAAS,EAAC,aAAa,EAAC,EAAE,EAAE,OAAO,IACpC,KAAK,CAAC,KAAK,CACT,CACN,CAAC,CAAC,CAAC,CACF,oBAAC,MAAM,oBACD,KAAK,CAAC,WAAW,IACrB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,IACtB,CACH;wBAEH,8CACa,OAAO,EAClB,SAAS,EAAC,cAAc,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAC3B,IAAI,EAAC,QAAQ;4BACb,0CAAe,MAAM,EAAC,SAAS,EAAC,aAAa,GAAG,CACzC,CACL;oBACN,6BAAK,SAAS,EAAC,YAAY,IAEvB,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAElG,CACL,CACJ;gBAGD,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrC,oBAAC,MAAM,oBAAK,KAAK,CAAC,WAAW,IAAE,UAAU,EAAE,UAAU,IAAI,CAC1D,CAEC,CACF,CACF,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC,CAAC;AAEJ,eAAe,WAAW,CAAC"}
package/Modal/Root.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { useDispatch, useSelector } from "react-redux";
3
3
  import { propsAreEqualCreator } from "../utility/others.js";
4
- import { hideModal } from "./actions.js";
4
+ import { softHideModal } from "./actions.js";
5
5
  import getComponent from "./getComponent.js";
6
6
  import { selectors } from "./reducer.js";
7
7
  const getTopModalProp = (list, key) => {
@@ -13,6 +13,12 @@ const getTopModalProp = (list, key) => {
13
13
  return topProps.get(key);
14
14
  }
15
15
  return null;
16
+ }, isTopAlreadyClosing = (list) => {
17
+ if (list.size === 0) {
18
+ return false;
19
+ }
20
+ const top = list.last();
21
+ return Boolean(top === null || top === void 0 ? void 0 : top.get("pleaseClose"));
16
22
  };
17
23
  const propsAreEqual = propsAreEqualCreator([], ["list"]), RawModalRoot = ({ list }) => {
18
24
  if (list.size === 0) {
@@ -26,10 +32,10 @@ const propsAreEqual = propsAreEqualCreator([], ["list"]), RawModalRoot = ({ list
26
32
  const theProps = ((current === null || current === void 0 ? void 0 : current.hasIn(["props", "immutableProps"])) ? ({
27
33
  modalProps: current.get("props"),
28
34
  }) : (current.get("props").toJS()));
29
- return (React.createElement(Component, Object.assign({ doNotCloseByEscape: isTheLastOne, key: index, pleaseClose: current.get("pleaseClose") }, theProps)));
35
+ return (React.createElement(Component, Object.assign({ doNotCloseByEscape: isTheLastOne, key: index, pleaseClose: current.get("pleaseClose"), stackIndex: index }, theProps)));
30
36
  })));
31
37
  }, InnerModalRoot = React.memo(RawModalRoot, propsAreEqual), ModalRoot = () => {
32
- const list = useSelector(selectors.getModals), dispatch = useDispatch(), prevSizeRef = React.useRef(0), skipCountRef = React.useRef(0), decreaseFromPopstateRef = React.useRef(0), listRef = React.useRef(list);
38
+ const list = useSelector(selectors.getModals), dispatch = useDispatch(), hasModals = list.size > 0, prevSizeRef = React.useRef(0), skipCountRef = React.useRef(0), decreaseFromPopstateRef = React.useRef(0), listRef = React.useRef(list);
33
39
  listRef.current = list;
34
40
  React.useEffect(() => {
35
41
  const currentSize = list.size, prev = prevSizeRef.current;
@@ -67,14 +73,26 @@ const propsAreEqual = propsAreEqualCreator([], ["list"]), RawModalRoot = ({ list
67
73
  window.history.pushState({ x25Modal: true }, "");
68
74
  return;
69
75
  }
76
+ if (isTopAlreadyClosing(currentList)) {
77
+ window.history.pushState({ x25Modal: true }, "");
78
+ return;
79
+ }
70
80
  decreaseFromPopstateRef.current += 1;
71
- dispatch(hideModal());
81
+ dispatch(softHideModal());
72
82
  };
73
83
  window.addEventListener("popstate", handlePopState);
74
84
  return () => {
75
85
  window.removeEventListener("popstate", handlePopState);
76
86
  };
77
87
  }, [dispatch]);
88
+ React.useEffect(() => {
89
+ if (hasModals) {
90
+ document.body.classList.add("modal-open");
91
+ }
92
+ return () => {
93
+ document.body.classList.remove("modal-open");
94
+ };
95
+ }, [hasModals]);
78
96
  return React.createElement(InnerModalRoot, { list: list });
79
97
  };
80
98
  export default ModalRoot;
package/Modal/Root.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/Modal/Root.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/Modal/Root.tsx"],"names":[],"mappings":"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"}
package/Modal/types.d.ts CHANGED
@@ -9,6 +9,7 @@ type CommonProps = {
9
9
  doNotCloseByEscape?: boolean;
10
10
  doNotCloseByBack?: boolean;
11
11
  preventDispatchHideModal?: boolean;
12
+ stackIndex?: number;
12
13
  Footer?: any;
13
14
  Header?: any;
14
15
  footerProps?: FooterProps;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "19.1.6",
2
+ "version": "19.1.7",
3
3
  "name": "x25",
4
4
  "type": "module",
5
5
  "description": "x25",