Files
bellsystems-cp/frontend/src/lib/loadQuill.js
T

30 lines
970 B
JavaScript

// frontend/src/lib/loadQuill.js
// Shared Quill CDN loader — ensures the script is only injected once across
// all modals (ComposeEmailModal, MailSettingsModal, etc.).
// Calls cb() immediately if Quill is already on window, otherwise queues it.
let _ready = false
let _callbacks = []
export function loadQuill(cb) {
if (_ready || window.Quill) { _ready = true; cb(); return }
_callbacks.push(cb)
if (document.getElementById('__quill_js__')) return // already injecting
const link = document.createElement('link')
link.id = '__quill_css__'
link.rel = 'stylesheet'
link.href = 'https://cdn.quilljs.com/1.3.7/quill.snow.css'
document.head.appendChild(link)
const script = document.createElement('script')
script.id = '__quill_js__'
script.src = 'https://cdn.quilljs.com/1.3.7/quill.min.js'
script.onload = () => {
_ready = true
_callbacks.forEach(fn => fn())
_callbacks = []
}
document.head.appendChild(script)
}