mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 10:21:05 +00:00
fix(modal): nested modals should correctly toggle the body class (#1331)
Fixes #1324
This commit is contained in:
parent
0063c01beb
commit
22f93ee675
3 changed files with 34 additions and 2 deletions
|
@ -92,6 +92,7 @@
|
|||
import { createEventDispatcher, onMount, afterUpdate } from "svelte";
|
||||
import Close from "../icons/Close.svelte";
|
||||
import Button from "../Button/Button.svelte";
|
||||
import { modalsOpen, addModalId, removeModalId } from "./modalStore";
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
|
@ -108,6 +109,7 @@
|
|||
|
||||
onMount(() => {
|
||||
return () => {
|
||||
removeModalId(id);
|
||||
document.body.classList.remove("bx--body--with-modal-open");
|
||||
};
|
||||
});
|
||||
|
@ -117,13 +119,17 @@
|
|||
if (!open) {
|
||||
opened = false;
|
||||
dispatch("close");
|
||||
document.body.classList.remove("bx--body--with-modal-open");
|
||||
}
|
||||
} else if (open) {
|
||||
opened = true;
|
||||
focus();
|
||||
dispatch("open");
|
||||
}
|
||||
|
||||
if ($modalsOpen.length > 0) {
|
||||
document.body.classList.add("bx--body--with-modal-open");
|
||||
} else {
|
||||
document.body.classList.remove("bx--body--with-modal-open");
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -143,6 +149,11 @@
|
|||
alertDialogProps["aria-describedby"] = modalBodyId;
|
||||
}
|
||||
}
|
||||
$: if (open) {
|
||||
addModalId(id);
|
||||
} else {
|
||||
removeModalId(id);
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue