import SwiftUI
import SwiftData

struct DetailView: View {
   @Environment(ApplicationData.self) private var appData
   let book: Book

   var body: some View {
      VStack {
         Text(book.title)
            .font(.title)
         Text(book.author?.name ?? "Undefined")
         Image(book.cover)
            .resizable()
            .scaledToFit()
            .frame(width: 100)
         Spacer()
      }.padding()
      .navigationTitle(Text("Book"))
      .toolbar {
         ToolbarItem(placement: .topBarTrailing) {
            Button(action: {
               appData.selectedBook = book
               appData.selectedAuthor = book.author
               appData.viewPath.append("Add Book")
            }, label: {
               Image(systemName: "pencil.circle")
            })
         }
      }
   }
}
#Preview(traits: .modifier(PreviewData())) {
   @Previewable @Query var listBooks: [Book]

   NavigationStack {
      DetailView(book: listBooks[0])
         .environment(ApplicationData.shared)
   }
}