21 lines
518 B
JavaScript
21 lines
518 B
JavaScript
|
|
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
|
||
|
|
}),
|
||
|
|
)
|
||
|
|
}
|