This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
A powerful multi-step form wizard built using React 18, Ant Design, and custom field-level validation logic.
This project includes dynamic validation, step-wise error tracking, keyboard-based auto-navigation, enhanced paste restrictions, scroll-to-error behavior, age validation, and fully customizable step progress indicators.
- Built using Antd
<Steps> - 5 Form Sections:
- Candidate
- Jobs
- Employer
- Referral
- Financial
- Each step contains fully validated fields
- Ability to click on steps (step navigation enabled)
- Each step shows a red warning icon if:
- One or more fields in that step are invalid
- Error state persists even after moving across steps
- Removes error icon automatically when step validates successfully
- Typing (onChange)
- Blur (onBlur)
- Keyboard input validation
- Paste validation
- Enter key navigation
- Tab behavior override for email
- Regex validations
- Alphabet-only fields
- Digit-only fields
- Required fields
- Federal Tax ID (exactly 9 digits)
- Contact numbers (exactly 10 digits)
- Experience (max 2 digits)
- Work Authorization
- URLs
- DOB 21+ validation
- Press Enter moves to the next field
- If current step fields end, pressing Enter:
- moves to NEXT STEP automatically
- On last step → pressing Enter runs Finish action
- Email field has a special validation + focus jump logic
Paste is blocked for invalid values in:
- Alphabet-only fields
- Numeric-only fields
- Federal Tax ID
- Contact numbers
If invalid paste → prevents paste + shows custom error.
- Step indicator stays fixed at the top
- Helps long forms remain user-friendly
- CSS powered
position: sticky
When submission fails:
- Automatically identifies the field belonging to the incorrect step
- Switches to that step
- Scrolls smoothly to the field
- Focuses the input box
Perfect for UX.
- Custom date picker using:
open,mode,onPanelChange
- User must be 21 years old or older
- Restricts:
- future dates
- invalid date picking from UI panel
- Uses
<Row gutter={16}> <Col span={8}>- Auto spacing
- Uniform layout across all steps
- Single form instance for all steps
- Fields grouped by step via:
const fieldsByStep = [...]
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.