import Combine import Foundation import GRDB import Photos import SwiftUI @MainActor final class GlobalSettingsStore: ObservableObject { static let shared = GlobalSettingsStore() @Published var credentials: [Credentials] = [] private var credentialsCancellable: AnyCancellable? init() { subscribe() } } private extension GlobalSettingsStore { func subscribe() { credentialsCancellable = ValueObservation.tracking(Credentials .fetchAll ) .publisher(in: Database.shared.dbQueue, scheduling: .immediate) .receive(on: DispatchQueue.main) .sink { _ in } receiveValue: { [weak self] credentials in self?.credentials = credentials } } }