Something went wrong. Try again.
iOS client for Grain grain.social
ios photography atproto
Something went wrong. Try again.
510 B · 18 lines
Swift
at main
12345678910111213141516171819import Foundation
@Observable@MainActorfinal class LabelDefinitionsCache { private(set) var definitions: [LabelDefinition] = [] private var hasLoaded = false
func loadIfNeeded(client: XRPCClient, auth: AuthContext?) async { guard !hasLoaded else { return } do { definitions = try await client.describeLabels(auth: auth) hasLoaded = true } catch { // Use empty definitions — fallbacks will handle well-known labels } }}