Files

47 lines
1.5 KiB
Swift

import SwiftUI
struct ShelfPickerView: View {
@ObservedObject var viewModel: ShareViewModel
@Environment(\.dismiss) private var dismiss
var body: some View {
content
.navigationTitle("Select Shelf")
.navigationBarTitleDisplayMode(.inline)
}
@ViewBuilder
private var content: some View {
if viewModel.isLoading && viewModel.shelves.isEmpty {
ProgressView("Loading shelves…")
.frame(maxWidth: .infinity, maxHeight: .infinity)
} else if viewModel.shelves.isEmpty {
ContentUnavailableView(
"No shelves found",
systemImage: "books.vertical",
description: Text("No shelves were found on the server.")
)
} else {
List(viewModel.shelves) { shelf in
Button {
Task {
await viewModel.selectShelf(shelf)
dismiss()
}
} label: {
HStack {
Text(shelf.name)
.foregroundStyle(.primary)
Spacer()
if viewModel.selectedShelf?.id == shelf.id {
Image(systemName: "checkmark")
.foregroundStyle(Color.accentColor)
}
}
}
}
}
}
}