diff --git a/frontend/src/common/components/map/S57EncOverlay.tsx b/frontend/src/common/components/map/S57EncOverlay.tsx index 692f336..0ad2e72 100644 --- a/frontend/src/common/components/map/S57EncOverlay.tsx +++ b/frontend/src/common/components/map/S57EncOverlay.tsx @@ -137,14 +137,21 @@ export function S57EncOverlay({ visible }: S57EncOverlayProps) { if (!map) return; if (visible) { - addEncLayers(map); + const doAdd = () => addEncLayers(map); + + if (map.isStyleLoaded()) { + doAdd(); + } else { + map.once('style.load', doAdd); + } + + return () => { + map.off('style.load', doAdd); + removeEncLayers(map); + }; } else { removeEncLayers(map); } - - return () => { - if (map) removeEncLayers(map); - }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [visible, mapRef]);