To take advantage of Next.js app router, we need to separate our client components that need state from the rest of the page so we can load data on the server.
To do this we'll refactor the list of rooms into it's own RoomList
component which will take the client-side React hooks with it. This way we can load all our rooms on the server and just pass it to RoomList
which will start to stream the rooms as we create them.
The final step will be to turn the form for creating rooms into a server action. You'll notice that we will need to instantiate a new fauna client within the server action even though we have a client available in that same page.