Handle offline tile layer creation failures (#307)

This commit is contained in:
l5y
2025-10-13 09:27:03 +02:00
committed by GitHub
parent 51e6479ab6
commit 009965f2fb
+27 -9
View File
@@ -970,7 +970,9 @@ export function initializeApp(config) {
function activateOfflineTiles(message) {
if (!hasLeaflet || !map) {
if (mapContainer) {
setMapPlaceholder(message);
setMapPlaceholder(
message || 'Offline basemap unavailable: Leaflet map is not initialized.'
);
}
return;
}
@@ -978,17 +980,33 @@ export function initializeApp(config) {
if (message) showMapStatus(message);
return;
}
usingOfflineTiles = true;
if (!offlineTiles) {
try {
offlineTiles = createOfflineTileLayer();
} catch (error) {
console.error('Failed to create offline tile layer', error);
if (mapContainer) {
const prefix = message ? `${message} ` : '';
const detail = error && error.message ? ` (${error.message})` : '';
const errorMessage = `${prefix}Offline fallback could not be initialized.${detail}`;
setMapPlaceholder(errorMessage);
}
return;
}
}
if (!offlineTiles) {
if (mapContainer) {
const prefix = message ? `${message} ` : '';
setMapPlaceholder(`${prefix}Offline fallback could not be initialized.`);
}
return;
}
if (tiles && map.hasLayer(tiles)) {
map.removeLayer(tiles);
}
if (!offlineTiles) {
offlineTiles = createOfflineTileLayer();
}
if (offlineTiles) {
offlineTiles.addTo(map);
observeTileContainer(offlineTiles);
}
usingOfflineTiles = true;
offlineTiles.addTo(map);
observeTileContainer(offlineTiles);
if (message) {
showMapStatus(message);
}