diff --git a/packages/core/src/components/dialog/dialog-content.tsx b/packages/core/src/components/dialog/dialog-content.tsx index 8767854..269f84d 100644 --- a/packages/core/src/components/dialog/dialog-content.tsx +++ b/packages/core/src/components/dialog/dialog-content.tsx @@ -1,6 +1,6 @@ // packages/core/src/components/dialog/dialog-content.tsx import type { JSX } from "solid-js"; -import { Show, onCleanup, onMount, splitProps } from "solid-js"; +import { Show, createEffect, onCleanup, splitProps } from "solid-js"; import { createDismiss } from "../../utilities/dismiss/create-dismiss"; import { createFocusTrap } from "../../utilities/focus-trap/create-focus-trap"; import { Portal } from "../../utilities/portal/portal"; @@ -42,18 +42,21 @@ export function DialogContent(props: DialogContentProps): JSX.Element { onDismiss: () => ctx.setOpen(false), }); - onMount(() => { + createEffect(() => { if (ctx.isOpen() && ctx.modal()) { focusTrap.activate(); scrollLock.lock(); dismiss.attach(); + } else { + focusTrap.deactivate(); + scrollLock.unlock(); + dismiss.detach(); } - }); - - onCleanup(() => { - focusTrap.deactivate(); - scrollLock.unlock(); - dismiss.detach(); + onCleanup(() => { + focusTrap.deactivate(); + scrollLock.unlock(); + dismiss.detach(); + }); }); return (