yattee/Shared/Settings/AccountsNavigationLink.swift

36 lines
911 B
Swift
Raw Permalink Normal View History

2021-11-28 14:37:55 +00:00
import SwiftUI
struct AccountsNavigationLink: View {
@ObservedObject private var accounts = AccountsModel.shared
2021-11-28 14:37:55 +00:00
var instance: Instance
var body: some View {
NavigationLink(instance.longDescription) {
InstanceSettings(instance: instance)
2021-11-28 14:37:55 +00:00
}
.buttonStyle(.plain)
.contextMenu {
removeInstanceButton(instance)
#if os(tvOS)
Button("Cancel", role: .cancel) {}
#endif
2021-11-28 14:37:55 +00:00
}
}
private func removeInstanceButton(_ instance: Instance) -> some View {
2022-01-06 15:02:53 +00:00
Button {
removeAction(instance)
} label: {
Label("Remove", systemImage: "trash")
2021-11-28 14:37:55 +00:00
}
}
private func removeAction(_ instance: Instance) {
if accounts.current?.instance == instance {
accounts.setCurrent(nil)
}
InstancesModel.shared.remove(instance)
2021-11-28 14:37:55 +00:00
}
}