struct ContentView: View {
   @State private var selectedAuthor: String?
   @State private var selectedBook: Book?
   @State private var visibility: NavigationSplitViewVisibility = .automatic

   var body: some View {
      NavigationSplitView(columnVisibility: $visibility, sidebar: {
         AuthorsView(selectedAuthor: $selectedAuthor)
      }, content: {
         BooksView(selectedBook: $selectedBook, selectedAuthor: selectedAuthor)
      }, detail: {
         if let book = selectedBook {
            DetailView(book: book)
         } else {
            ContentUnavailableView {
               Label("No Book", systemImage: "book.fill")
            } description: {
               Text("Select a book from the list.")
            }
         }
      })
   }
}