Skip to content

An implementation of a "form wizard" (multistep form) using my useFormStateMachine hook, based on an automobile insurance quote tool

Notifications You must be signed in to change notification settings

mattdeboard/react-multistep-form

Repository files navigation

React Multistep Form

This repo exists as a reference utilization of my useFormStateMachine hook. I used Root's quote builder as the model application.

Architecture

useFormStateMachine

As mentioned above, this repo is meant to demonstrate usage of useFormStateMachine. You can see that hook's invocation here.

In fact, all of the logic for navigating through & submitting the form live in that same module. This makes individual sub-forms (e.g. homeowner status, marital status, etc.) extremely simple. This demonstrates the strength of useFormStateMachine in separating the form's navigational concerns from the data-gathering concerns of the form. Each sub-form in the wizard is a straightforward collection of text and form fields, rather than being "complected" with all the conditional logic inherent in a multi-step form.

Routing

This is a Next.js project bootstrapped with create-next-app.

This application uses NextJS's App Router. I chose the App router, instead of the Pages router, because I prefer the nested folder-based routing system. The Pages router would have been fine, given the size & simplicity of this application. I simply prefer the App router paradigm.

However, nearly all routing here is done client-side. All components are client-side components (hence the 'use client' declaration at the top of each file).

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

About

An implementation of a "form wizard" (multistep form) using my useFormStateMachine hook, based on an automobile insurance quote tool

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published