NetNewsWire/Multiplatform/macOS/Preferences/Preference Panes/Accounts/AccountsPreferenceModel.swift

47 lines
1.2 KiB
Swift
Raw Normal View History

2020-07-13 15:41:02 +02:00
//
// AccountsPreferenceModel.swift
// Multiplatform macOS
//
// Created by Stuart Breckenridge on 13/7/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import Foundation
import Account
import Combine
class AccountsPreferenceModel: ObservableObject {
@Published var sortedAccounts: [Account] = []
@Published var selectedConfiguredAccountID: String? = nil
@Published var showAddAccountView: Bool = false
var selectedAccountIsDefault: Bool {
guard let selected = selectedConfiguredAccountID else {
return true
}
if selected == AccountManager.shared.defaultAccount.accountID {
return true
}
return false
}
// Subscriptions
2020-07-13 16:29:33 +02:00
var notificationSubscriptions = Set<AnyCancellable>()
2020-07-13 15:41:02 +02:00
init() {
sortedAccounts = AccountManager.shared.sortedAccounts
NotificationCenter.default.publisher(for: .UserDidAddAccount).sink(receiveValue: { _ in
self.sortedAccounts = AccountManager.shared.sortedAccounts
2020-07-13 16:29:33 +02:00
}).store(in: &notificationSubscriptions)
2020-07-13 15:41:02 +02:00
NotificationCenter.default.publisher(for: .UserDidDeleteAccount).sink(receiveValue: { _ in
self.selectedConfiguredAccountID = nil
self.sortedAccounts = AccountManager.shared.sortedAccounts
2020-07-13 16:29:33 +02:00
}).store(in: &notificationSubscriptions)
2020-07-13 15:41:02 +02:00
}
}