Files

43 lines
1.0 KiB
Swift

// SPDX-FileCopyrightText: 2026 Kaede Akino
// SPDX-License-Identifier: GPL-3.0-only
import Observation
import TermindApplication
import TermindDomain
import struct TermindDomain.Host
@MainActor
@Observable
final class MobileHostPickerModel {
var query = ""
private let library: HostLibraryModel
init(library: HostLibraryModel) {
self.library = library
}
var isLibraryEmpty: Bool { library.hosts.isEmpty }
var hosts: [Host] { library.searchHosts(query) }
func loginAddress(for host: Host) -> String { library.preferredTerminalLoginAddress(for: host) }
}
@MainActor
@Observable
final class MobileConnectionPickerModel {
var kind = MobileConnectionProtocol.ssh
private let connect: (Host.ID, ConnectionHistoryEntry.Kind) -> Void
init(connect: @escaping (Host.ID, ConnectionHistoryEntry.Kind) -> Void) {
self.connect = connect
}
func select(_ host: Host) {
guard let resolved = kind.kind(for: host) else { return }
connect(host.id, resolved)
}
}