Sha256: ba5e92490c9f7884ed0e133dc57793b0ae856a33fae68c6f62fd3e16e304111a
Contents?: true
Size: 677 Bytes
Versions: 5
Compression:
Stored size: 677 Bytes
Contents
import {controllerFactory} from '@utils/createController' import {disableBodyScroll, enableBodyScroll} from 'body-scroll-lock' export default class DialogController extends controllerFactory()({ targets: {dialog: HTMLDialogElement}, }) { close() { this.dialogTarget.close() enableBodyScroll(this.dialogTarget) } disconnect() { this.close() } open() { this.dialogTarget.showModal() disableBodyScroll(this.dialogTarget, {reserveScrollBarGap: true}) } triggerClick() { if (this.dialogTarget.open) this.close() else this.open() } windowClick(e: MouseEvent) { if (e.target === this.dialogTarget) { this.close() } } }
Version data entries
5 entries across 5 versions & 1 rubygems