@monstermann/signals-modal 0.2.1 → 0.3.0
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/createModal.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { MaybeDispose } from "@monstermann/signals";
|
|
|
5
5
|
interface ModalContext {
|
|
6
6
|
key: string;
|
|
7
7
|
dispose: () => void;
|
|
8
|
+
isDisposed: () => boolean;
|
|
8
9
|
onDispose: (dispose: MaybeDispose) => void;
|
|
9
10
|
}
|
|
10
11
|
declare const onModalDisposed: _monstermann_signals0.Emitter<string>;
|
package/dist/createModal.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { onModalClosed } from "./status/onModalClosed.js";
|
|
2
2
|
import { closeModal } from "./status/closeModal.js";
|
|
3
3
|
import { isModalClosed } from "./status/isModalClosed.js";
|
|
4
|
-
import { SILENT, context, disposer, emitter } from "@monstermann/signals";
|
|
4
|
+
import { SILENT, context, disposer, emitter, isDisposed } from "@monstermann/signals";
|
|
5
5
|
|
|
6
6
|
//#region src/createModal.ts
|
|
7
7
|
const meta = {
|
|
8
8
|
path: "@signals-modal/createModal.ts",
|
|
9
|
-
line:
|
|
9
|
+
line: 16,
|
|
10
10
|
name: "onModalDisposed"
|
|
11
11
|
};
|
|
12
12
|
const modalCtx = context();
|
|
@@ -21,6 +21,7 @@ function createModal(key, setup) {
|
|
|
21
21
|
const nextCtx = {
|
|
22
22
|
key,
|
|
23
23
|
onDispose: dispose,
|
|
24
|
+
isDisposed: () => isDisposed(dispose),
|
|
24
25
|
dispose() {
|
|
25
26
|
if (isModalClosed(key)) {
|
|
26
27
|
dispose();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _monstermann_signals2 from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/status/onModalClosing.d.ts
|
|
4
|
-
declare const onModalClosing:
|
|
4
|
+
declare const onModalClosing: _monstermann_signals2.Emitter<string>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { onModalClosing };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _monstermann_signals1 from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/status/onModalOpened.d.ts
|
|
4
|
-
declare const onModalOpened:
|
|
4
|
+
declare const onModalOpened: _monstermann_signals1.Emitter<string>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { onModalOpened };
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
import { getGroupsForModal } from "../groups/getGroupsForModal.js";
|
|
2
2
|
import { getVisibleModals } from "../status/getVisibleModals.js";
|
|
3
|
-
import { INTERNAL, effect } from "@monstermann/signals";
|
|
3
|
+
import { INTERNAL, effect, memo } from "@monstermann/signals";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/syncModalGroupsToBody.ts
|
|
6
|
+
const path = "@signals-modal/utils/syncModalGroupsToBody.ts";
|
|
6
7
|
const meta = {
|
|
7
|
-
path
|
|
8
|
-
line:
|
|
8
|
+
path,
|
|
9
|
+
line: 5,
|
|
10
|
+
name: "$classes"
|
|
11
|
+
};
|
|
12
|
+
const meta1 = {
|
|
13
|
+
path,
|
|
14
|
+
line: 17,
|
|
9
15
|
name: "syncModalGroupsToBody"
|
|
10
16
|
};
|
|
17
|
+
const $classes = memo(() => {
|
|
18
|
+
const modals = getVisibleModals();
|
|
19
|
+
const clx = /* @__PURE__ */ new Set();
|
|
20
|
+
for (const modal of modals) for (const group of getGroupsForModal(modal)) clx.add(`has-${group}`);
|
|
21
|
+
return Array.from(clx).sort().join(" ");
|
|
22
|
+
}, INTERNAL, meta);
|
|
11
23
|
function syncModalGroupsToBody() {
|
|
12
24
|
effect(() => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
for (const modal of modals) for (const group of getGroupsForModal(modal)) clx.add(`has-${group}`);
|
|
16
|
-
document.body.classList.add(...clx);
|
|
25
|
+
const classes = $classes().split(" ");
|
|
26
|
+
document.body.classList.add(...classes);
|
|
17
27
|
return () => {
|
|
18
|
-
document.body.classList.remove(...
|
|
28
|
+
document.body.classList.remove(...classes);
|
|
19
29
|
};
|
|
20
|
-
}, INTERNAL,
|
|
30
|
+
}, INTERNAL, meta1);
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
//#endregion
|