shinkan-jinkendo/frontend/src/utils/lazyWithRetry.js

21 lines
518 B
JavaScript
Raw Normal View History

import { lazy } from 'react'
/**
* Lazy-Import mit Reload bei fehlendem Chunk (nach Deploy alte Hashes im Browser-Cache).
*/
export function lazyWithRetry(importFn) {
return lazy(() =>
importFn().catch((err) => {
const key = 'sj_chunk_reload'
const reloaded = sessionStorage.getItem(key)
if (!reloaded) {
sessionStorage.setItem(key, '1')
window.location.reload()
return new Promise(() => {})
}
sessionStorage.removeItem(key)
throw err
}),
)
}