mirror of
https://github.com/yJason/ClashX-Dashboard.git
synced 2026-03-01 00:35:19 +08:00
feat: provider tab
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user