Files
ClashX-Dashboard/ClashX Dashboard/Views/ContentTabs/Rules/RulesView.swift
2023-05-18 14:39:36 +08:00

46 lines
819 B
Swift

//
// RulesView.swift
// ClashX Dashboard
//
//
import SwiftUI
struct RulesView: View {
@State var ruleItems = [ClashRule]()
@State private var searchString: String = ""
var rules: [EnumeratedSequence<[ClashRule]>.Element] {
if searchString.isEmpty {
return Array(ruleItems.enumerated())
} else {
return Array(ruleItems.filtered(searchString, for: ["type", "payload", "proxy"]).enumerated())
}
}
var body: some View {
List {
ForEach(rules, id: \.element.id) {
RuleItemView(index: $0.offset, rule: $0.element)
}
}
.searchable(text: $searchString)
.onAppear {
ruleItems.removeAll()
ApiRequest.getRules {
ruleItems = $0
}
}
}
}
//struct RulesView_Previews: PreviewProvider {
// static var previews: some View {
// RulesView()
// }
//}