feat: provider tab

This commit is contained in:
mrFq1
2023-05-18 14:39:36 +08:00
parent 8e9bf8c6cc
commit 7fb4694f23
14 changed files with 639 additions and 260 deletions
@@ -8,21 +8,11 @@ import SwiftUI
struct RulesView: View {
@State var ruleProviders = [ClashRuleProvider]()
@State var ruleItems = [ClashRule]()
@State private var searchString: String = ""
var providers: [ClashRuleProvider] {
if searchString.isEmpty {
return ruleProviders
} else {
return ruleProviders.filtered(searchString, for: ["name", "behavior", "type"])
}
}
var rules: [EnumeratedSequence<[ClashRule]>.Element] {
if searchString.isEmpty {
return Array(ruleItems.enumerated())
@@ -34,10 +24,6 @@ struct RulesView: View {
var body: some View {
List {
ForEach(providers, id: \.self) {
RuleProviderView(ruleProvider: $0)
}
ForEach(rules, id: \.element.id) {
RuleItemView(index: $0.offset, rule: $0.element)
}
@@ -48,14 +34,6 @@ struct RulesView: View {
ApiRequest.getRules {
ruleItems = $0
}
ApiRequest.requestRuleProviderList {
ruleProviders = $0.allProviders.map {
$0.value
}.sorted {
$0.name < $1.name
}
}
}
}
}