A Reactjs starter written in ES with Vite based build
- SPA
- Basic components
- Portal component
- Appbar (App bar top or left with global actions and route specific actions)
- Notifications (toast, info, warn, success)
- Overlay
- Progress
- Form component.
- Out of the box default styling
- Validation support (basic validators included)
- Integrate custom components
- MultiValInput (Supports form)
- MultiSelect (Supports form)
- FileUpload component (Supports form)
- Routing (Hash based routing with custom views per route)
- Light and dark theme support
- Custom branding (Logo, colors, etc)
- Feather font icons
-
Validation Timing: The
onChange
event only fires when the form is not pristine, potentially missing initial validation errors. -
Field Removal: When removing a field, the form's
valid
state isn't recalculated. -
Async Validation: No support for asynchronous validation (e.g., server-side checks).
-
Deep Object Handling: Lack of built-in support for deeply nested object structures in form data.
-
Array Field Handling: No specific support for array fields (e.g., dynamic list of inputs).
-
Performance for Large Forms: The
useEffect
hook for form changes runs on every update, potentially causing performance issues in large forms. -
Reset Functionality: Lack of a built-in way to reset all fields to their initial state.
-
Field Focus Management: No built-in way to manage field focus for accessibility and user experience.
-
Custom Field Validation Timing: Always validates on every change, with no way to customize (e.g., validate on blur).
-
Error Boundary: No error boundary to catch and handle runtime errors gracefully.
- Implement a more flexible validation timing system.
- Recalculate form validity when removing fields.
- Add support for async validation.
- Implement handling for deep object structures in form data.
- Add support for array fields and dynamic inputs.
- Optimize performance for large forms, possibly with debouncing or memoization.
- Implement a form reset function.
- Add field focus management utilities.
- Allow customization of validation timing (e.g., on change, on blur, on submit).
- Implement an error boundary for the form component.