Refactor to use consolidated CommandClient

This commit is contained in:
世界
2025-11-26 22:25:48 +08:00
parent b71cbae382
commit 39b10d707e
11 changed files with 79 additions and 99 deletions
@@ -8,11 +8,14 @@ public class GroupListViewModel: ObservableObject {
@Published public var isLoading = true
@Published public var groups: [OutboundGroup] = []
private let commandClient = CommandClient(.groups)
private var commandClient: CommandClient?
private var cancellables = Set<AnyCancellable>()
public init() {
commandClient.$groups
public init() {}
public func setCommandClient(_ client: CommandClient) {
commandClient = client
client.$groups
.compactMap { $0 }
.sink { [weak self] goGroups in
self?.setGroups(goGroups)
@@ -34,15 +37,9 @@ public class GroupListViewModel: ObservableObject {
}),
]
isLoading = false
} else {
commandClient.connect()
}
}
public func disconnect() {
commandClient.disconnect()
}
private func setGroups(_ goGroups: [LibboxOutboundGroup]) {
var groups = [OutboundGroup]()
for goGroup in goGroups {