struct ContentView: View {
   @Environment(ApplicationData.self) private var appData
   @State private var searchTerm: String = ""
   @FocusState private var isFocused: Bool

   var body: some View {
      NavigationStack {
         List {
            ForEach(appData.filteredItems) { book in
               CellBook(book: book)
            }
         }
         .navigationTitle(Text("Books"))
         .toolbarTitleDisplayMode(.inlineLarge)
         .toolbar {
            ToolbarItem(placement: .topBarTrailing) {
               Button("Search") {
                  isFocused = true
               }
            }
         }
      }
      .searchable(text: $searchTerm, prompt: Text("Insert title"))
      .searchFocused($isFocused)
      .onChange(of: searchTerm, initial: false) { old, value in
         let search = value.trimmingCharacters(in: .whitespaces)
         appData.filterValues(search: search)
      }
   }
}