fix(filters): восстановить связь рекурсивного шлюза после опроса

This commit is contained in:
Denozordec committed 2026-10-15 23:17:42 +07:00
1 parent 042407f03e
commit 0f0d3aa060
4 files changed
+74 -4

No files matched your search

+7 -1
View File
@@ -1676,11 +1676,17 @@ function FiltersPage() {
}
const openEdit = (rule: FilterRule) => {
if (mutationsLocked || applyLock.current) return
// The observed catalog can have new DB IDs after refresh. Recover only an
// explicit recursive reference, never reinterpret a named GRE interface.
const routes = recRoutesByServer[selectedServerId] ?? []
const recursive = isRecursiveGatewayRef(rule.gatewayTunnelId)
? routes.find(r => r.id === rule.gatewayTunnelId.slice(4)) ?? pickRecursiveRouteByGatewayHop(routes, rule.gateway)
: undefined
setSheetInitial({
action: rule.action ?? "route",
community: rule.community,
gateway: rule.gateway,
gatewayTunnelId: rule.gatewayTunnelId,
gatewayTunnelId: recursive ? `rec:${recursive.id}` : rule.gatewayTunnelId,
gatewayKind: isRecursiveGatewayRef(rule.gatewayTunnelId) ? "recursive" : "gre",
description: rule.description,
})