Files
furumi_macos/furumi_macos/PlaylistsViewModel.swift
T
Ultradesu 2f8cff528c init
2026-06-08 16:50:16 +01:00

38 lines
827 B
Swift

//
// PlaylistsViewModel.swift
// furumi_macos
//
import Foundation
import Observation
@MainActor
@Observable
final class PlaylistsViewModel {
private(set) var playlists: [PlaylistCard] = []
private(set) var isLoading = false
private(set) var error: String?
private var service: CatalogService
init(service: CatalogService) { self.service = service }
func reset(service: CatalogService) {
self.service = service
playlists = []
isLoading = false
error = nil
}
func load() async {
guard !isLoading else { return }
isLoading = true
error = nil
defer { isLoading = false }
do {
playlists = try await service.playlists()
} catch {
self.error = error.localizedDescription
}
}
}