IceCubesApp/Packages/Env/Sources/Env/CurrentInstance.swift

29 lines
573 B
Swift
Raw Normal View History

import Foundation
import Models
import Network
@MainActor
public class CurrentInstance: ObservableObject {
@Published public private(set) var instance: Instance?
2023-01-17 10:36:01 +00:00
private var client: Client?
2023-01-17 10:36:01 +00:00
public static let shared = CurrentInstance()
private init() {}
public func setClient(client: Client) {
self.client = client
Task {
await fetchCurrentInstance()
}
}
2023-01-17 10:36:01 +00:00
public func fetchCurrentInstance() async {
guard let client = client else { return }
Task {
instance = try? await client.get(endpoint: Instances.instance)
}
}
}