struct ContentView: View {
   @State private var selectedBook: Book?
   @State private var path = NavigationPath()
   @State private var visibility: NavigationSplitViewVisibility = .automatic

   var body: some View {
      NavigationSplitView(columnVisibility: $visibility, sidebar: {
         NavigationStack {
            BooksView(selectedBook: $selectedBook)
         }
      }, detail: {
         NavigationStack(path: $path) {
            if let book = selectedBook {
               DetailView(path: $path, book: book)
            } else {
               ContentUnavailableView {
                  Label("No Book", systemImage: "book.fill")
               } description: {
                  Text("Select a book from the list.")
               }
            }
         }
      })
      .onChange(of: selectedBook, initial: false) { _, _ in
         path = NavigationPath()
      }
   }
}