Files
brk/website_next/dialog/index.js
T
2026-07-06 15:54:25 +02:00

23 lines
592 B
JavaScript

import { waitForTransition } from "../utils/transition.js";
/** @param {MouseEvent} event */
function closeOnBackdrop(event) {
const dialog = /** @type {HTMLDialogElement} */ (event.currentTarget);
if (event.target === dialog) dialog.close();
}
/**
* @param {HTMLDialogElement} dialog
* @param {HTMLElement} host
*/
export function openDialog(dialog, host) {
host.append(dialog);
dialog.addEventListener("close", async () => {
await waitForTransition();
dialog.remove();
}, { once: true });
dialog.addEventListener("click", closeOnBackdrop);
dialog.showModal();
}