diff --git a/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyGroupView.swift b/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyGroupView.swift index b69d130..fc0eca8 100644 --- a/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyGroupView.swift +++ b/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyGroupView.swift @@ -18,6 +18,8 @@ struct ProxyGroupView: View { @State private var selectable = false @State private var isTesting = false + @State private var groupSelected: String? + var proxies: [DBProxy] { if searchString.string.isEmpty { return proxyGroup.proxies @@ -52,6 +54,7 @@ struct ProxyGroupView: View { } .onAppear { self.selectable = [.select, .fallback].contains(proxyGroup.type) + self.groupSelected = proxyGroup.now } } @@ -98,9 +101,9 @@ struct ProxyGroupView: View { ForEach(proxies, id: \.id) { proxy in ProxyItemView( proxy: proxy, - selectable: [.select, .fallback].contains(proxyGroup.type) + selectable: [.select, .fallback].contains(proxyGroup.type), + now: $groupSelected ) - .background(proxyGroup.now == proxy.name ? Color.pink.opacity(0.3) : Color(nsColor: .textBackgroundColor)) .cornerRadius(8) .onTapGesture { let item = proxy @@ -138,6 +141,7 @@ struct ProxyGroupView: View { isUpdatingSelect = false guard success else { return } proxyGroup.now = name + self.groupSelected = name } } diff --git a/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyItemView.swift b/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyItemView.swift index 87666c0..5e83300 100644 --- a/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyItemView.swift +++ b/Sources/ClashX Dashboard/Views/ContentTabs/Proxies/ProxyItemView.swift @@ -10,13 +10,15 @@ struct ProxyItemView: View { @ObservedObject var proxy: DBProxy @State var selectable: Bool + @Binding var now: String? @EnvironmentObject var hideProxyNames: HideProxyNames - init(proxy: DBProxy, selectable: Bool) { + + init(proxy: DBProxy, selectable: Bool, now: Binding = .init(get: {nil}) { _ in }) { self.proxy = proxy self.selectable = selectable - + self._now = now self.isBuiltInProxy = [.pass, .direct, .reject].contains(proxy.type) } @@ -68,6 +70,7 @@ struct ProxyItemView: View { .padding(1) ) + .background(now == proxy.name ? Color.accentColor.opacity(0.7) : Color(nsColor: .textBackgroundColor)) } }