Files
2026-04-28 22:55:10 +03:00

39 lines
1.1 KiB
Swift

import Foundation
import SwiftUI
import SwiftData
import ReadeckCore
import ReadeckNetworking
@MainActor
@Observable
public final class AppEnvironment {
public let credentialsStore: CredentialsStoring
public private(set) var credentials: ServerCredentials?
public private(set) var client: ReadeckClientProtocol
public init(
credentialsStore: CredentialsStoring = UserDefaultsCredentialsStore(),
client: ReadeckClientProtocol = ReadeckClient()
) {
self.credentialsStore = credentialsStore
self.client = client
let stored = credentialsStore.load()
self.credentials = stored
ReadeckEnvironment.current.update(stored)
}
public var isConfigured: Bool { credentials != nil }
public func updateCredentials(_ credentials: ServerCredentials) throws {
try credentialsStore.save(credentials)
self.credentials = credentials
ReadeckEnvironment.current.update(credentials)
}
public func clearCredentials() throws {
try credentialsStore.clear()
credentials = nil
ReadeckEnvironment.current.update(nil)
}
}