Cinema seat booking

Every row of seats and the booking summary are async components built with jsx-async-runtime, which load their data from this.store. The server renders the page with a store that reads a cookie. After a click, the browser re-renders only the parts which changed with the same components and a store that fetches the API. Other guests keep booking seats, so the browser refreshes the seats every 20 seconds.

Without JavaScript, every seat is a button in a plain form, and the server renders the whole page.

AA
BB
CC
DD
EE
FF
GG
HH
  • Front €8.00
  • Standard €11.00
  • Premium €14.00
  • Selected
  • Taken
  • Yours