Sha256: a7f5dab0a40d9a3380dde58c4d178e247661c2208d8d258cccb8c06798e66d89
Contents?: true
Size: 1.15 KB
Versions: 4
Compression:
Stored size: 1.15 KB
Contents
import { Modal as BootstrapModal } from 'bootstrap' import Backdrop from './backdrop' import { fetchTurboStream } from './fetch' export default class Modal extends BootstrapModal { static load (url, fetchParams) { const backdrop = Backdrop.getInstance() backdrop.loading(true) backdrop.show() Modal.existing.forEach((modal) => modal.classList.add('background')) return new Promise((resolve) => { document.addEventListener('modal:render', (e) => { resolve(e.detail) }, { capture: true, once: true }) fetchTurboStream(url, { ...fetchParams, headers: { 'X-Trestle-Modal': true } }) }) } static get existing () { return document.querySelectorAll('.modal.show') } static restorePrevious () { const previousModal = document.querySelector('.modal.show:last-child') if (previousModal) { previousModal.classList.remove('background') } } constructor (element) { super(element) element.addEventListener('show.bs.modal', () => { this._backdrop.loading(false) }) } _initializeBackDrop () { return Backdrop.getInstance() } }
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
trestle-0.10.1 | frontend/js/core/modal.js |
trestle-0.10.0 | frontend/js/core/modal.js |
trestle-0.10.0.pre2 | frontend/js/core/modal.js |
trestle-0.10.0.pre | frontend/js/core/modal.js |