Explore the world of Pokémon cards with Card Wizard, where you can select your favorite cards from earlier sets. This example application showcases the creation of a dynamic form, where each select option adapts based on previous selections. Once all choices are made, users can submit the form*. If an option changes, subsequent select inputs are reset to reflect the new options.
By relying on URL state the use of useState or data fetching libraries is not necessary. Instead, it leverages the power of the URL by storing user selections in the search parameters, and transitions from a GET method to a POST method upon form completion.
Card Wizard is built with Remix, React Aria Components and Tailwind. See the full source code here.