fix: hide unavailable GeoServer layers
This commit is contained in:
@@ -156,6 +156,9 @@ export function MapWorkbenchPage({
|
||||
const handleSelectFeature = useCallback((feature: DetailFeature) => {
|
||||
setDetailFeature(feature);
|
||||
}, []);
|
||||
const handleClearSelection = useCallback(() => {
|
||||
setDetailFeature(null);
|
||||
}, []);
|
||||
|
||||
const agent = useWorkbenchAgent({
|
||||
onUiEnvelope: handleAgentUiEnvelope,
|
||||
@@ -259,9 +262,20 @@ export function MapWorkbenchPage({
|
||||
});
|
||||
}
|
||||
|
||||
const { mapRef, mapReady, mapError, sourceStatuses, fitNetworkBounds, getScadaFeatures } = useWorkbenchMap({
|
||||
const {
|
||||
mapRef,
|
||||
mapReady,
|
||||
mapError,
|
||||
sourceStatuses,
|
||||
availableSourceIds,
|
||||
fitNetworkBounds,
|
||||
getScadaFeatures,
|
||||
refreshGeoServerLayers
|
||||
} = useWorkbenchMap({
|
||||
containerRef: mapContainerRef,
|
||||
impactVisible,
|
||||
layerVisibility,
|
||||
onClearSelection: handleClearSelection,
|
||||
onSelectFeature: handleSelectFeature,
|
||||
selectedFeature: detailFeature,
|
||||
getAccessToken
|
||||
@@ -273,7 +287,8 @@ export function MapWorkbenchPage({
|
||||
rightPanelOpen,
|
||||
conditionPanelExpanded: rightPanelExpanded,
|
||||
agentPanelWidth,
|
||||
getScadaFeatures
|
||||
getScadaFeatures,
|
||||
availableSourceIds
|
||||
});
|
||||
|
||||
const activeAgentUiResults = useMemo(
|
||||
@@ -426,8 +441,8 @@ export function MapWorkbenchPage({
|
||||
);
|
||||
|
||||
const layerControlItems = useMemo(
|
||||
() => createLayerControlItems(layerVisibility),
|
||||
[layerVisibility]
|
||||
() => createLayerControlItems(layerVisibility, availableSourceIds),
|
||||
[availableSourceIds, layerVisibility]
|
||||
);
|
||||
function handleToggleLayer(layerControlId: string, visible: boolean) {
|
||||
const map = mapRef.current;
|
||||
@@ -492,8 +507,15 @@ export function MapWorkbenchPage({
|
||||
return;
|
||||
}
|
||||
|
||||
if (!refreshGeoServerLayers()) {
|
||||
showMapNotice({ tone: "warning", message: "业务图层正在检查,请稍候。" });
|
||||
return;
|
||||
}
|
||||
map.triggerRepaint();
|
||||
showMapNotice({ tone: "success", message: "已请求地图重新渲染,业务瓦片将在视图变化时刷新。" });
|
||||
showMapNotice({
|
||||
tone: "success",
|
||||
message: "已开始重新检查业务图层,并请求地图重新渲染。"
|
||||
});
|
||||
}
|
||||
|
||||
function handleShowDataStatus() {
|
||||
|
||||
Reference in New Issue
Block a user