Files
MobileMusicAssistant/Mobile Music Assistant/ViewsLibraryLibraryView.swift
T
2026-04-19 16:57:57 +02:00

72 lines
2.0 KiB
Swift

//
// LibraryView.swift
// Mobile Music Assistant
//
// Created by Sven Hanold on 26.03.26.
//
import SwiftUI
import UIKit
enum LibraryTab: CaseIterable {
case albumArtists, artists, albums, playlists, genres, podcasts, radio
var title: LocalizedStringKey {
switch self {
case .albumArtists: return "Album Artists"
case .artists: return "Artists"
case .albums: return "Albums"
case .playlists: return "Playlists"
case .genres: return "Genres"
case .podcasts: return "Podcasts"
case .radio: return "Radio"
}
}
}
struct LibraryView: View {
@Environment(MAService.self) private var service
@State private var selectedTab: LibraryTab = .albumArtists
init() {
UISegmentedControl.appearance().setTitleTextAttributes(
[.font: UIFont.systemFont(ofSize: 11, weight: .medium)],
for: .normal
)
}
var body: some View {
NavigationStack {
Group {
switch selectedTab {
case .albumArtists: ArtistsView(albumArtistsOnly: true)
case .artists: ArtistsView()
case .albums: AlbumsView()
case .playlists: PlaylistsView()
case .genres: GenresView()
case .podcasts: PodcastsView()
case .radio: RadiosView()
}
}
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .principal) {
Picker("Library", selection: $selectedTab) {
ForEach(LibraryTab.allCases, id: \.self) { tab in
Text(tab.title).tag(tab)
}
}
.pickerStyle(.segmented)
.frame(maxWidth: 360)
}
}
.withMANavigation()
}
}
}
#Preview {
LibraryView()
.environment(MAService())
}