Files
overleaf-cep/services/web/frontend/js/features/fallback-image/index.ts
Mathias Jakobsen bb0df00d7f Merge pull request #27905 from overleaf/mj-pug-frontend-helpers-ts
[web] Convert pug frontend helpers to typescript

GitOrigin-RevId: e74527306ded6bc7db992cd8ceaff34d0d26b1b7
2025-08-19 08:04:50 +00:00

22 lines
658 B
TypeScript

function loadingFailed(imgEl: HTMLImageElement) {
return imgEl.complete && imgEl.naturalWidth === 0
}
document.querySelectorAll('[data-ol-fallback-image]').forEach(element => {
if (!(element instanceof HTMLImageElement)) {
// The sprinkle only applies to image elements.
return
}
const imgEl = element as HTMLImageElement
function showFallback() {
imgEl.src = imgEl.getAttribute('data-ol-fallback-image')!
}
if (loadingFailed(imgEl)) {
// The image loading failed before the sprinkle ran.
showFallback()
} else {
// The image loading might fail in the future.
imgEl.addEventListener('error', showFallback)
}
})