struct ContentView: View {
   @Environment(ApplicationData.self) private var appData
   @State private var position = ScrollPosition(idType: Book.ID.self)
   @State private var title: String = ""

   var body: some View {
      VStack {
         ScrollView(.horizontal, showsIndicators: false) {
            LazyHStack(spacing: 0) {
               ForEach(appData.userData) { book in
                  CellBook(book: book)
                     .containerRelativeFrame(.horizontal, count: 2, span: 1, spacing: 0)
               }
               Button("< Back") {
                  position.scrollTo(edge: .top)
               }
               .buttonStyle(.glassProminent)
               .padding([.leading, .trailing], 55)
            }
            .scrollTargetLayout()
         }
         .scrollPosition($position)
         .scrollTargetBehavior(.viewAligned)
         .frame(height: 300)
         
         .onChange(of: position, initial: true, {
            if let selected = position.viewID as? UUID {
               if let book = appData.userData.first(where: { $0.id == selected }) {
                  title = book.title
               }
            }
         })
         Text(title)
            .font(.title)
            .padding()
         Spacer()
      }
   }
}