struct ContentView: View {
   @Environment(ApplicationData.self) private var appData
   @State private var selectedBook: Book?
   @State private var visibility: NavigationSplitViewVisibility = .automatic

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