Go to file
MehrdadAdabi 7c8590c075 feat: add file uploader component and refactor form field validation
- Add FileUploader component import and integration in form-field
- Refactor validateField function to accept typed parameters (string | number | boolean)
- Move validateField definition before useEffect for better code organization
- Improve code formatting and consistency in select case block
- Add file upload type handling in renderInput switch statement
- Extend FormFieldType interface with comprehensive field properties
- Format template strings for better readability

This change enhances the form field component to support file uploads and improves type safety in validation logic. The refactoring also improves code maintainability by reorganizing function definitions and standardizing formatting.
2025-11-27 20:03:05 +03:30
public feat: enhance dashboard layout with user profile header and mobile navbar 2025-11-24 16:58:35 +03:30
src feat: add file uploader component and refactor form field validation 2025-11-27 20:03:05 +03:30
.env feat: Implement searchable dropdown component and refactor campaign page 2025-11-25 13:42:19 +03:30
.gitignore init 2025-11-22 16:42:06 +03:30
eslint.config.js init 2025-11-22 16:42:06 +03:30
index.html feat: Implement dashboard profile card and campaigns management 2025-11-23 18:10:30 +03:30
package-lock.json feat: Implement dashboard profile card and campaigns management 2025-11-23 18:10:30 +03:30
package.json refactor: Simplify validation logic and adjust campaign steps service parameters 2025-11-26 18:45:57 +03:30
README.md init 2025-11-22 16:42:06 +03:30
tsconfig.app.json feat: Introduce new dynamic field properties and refine form handling 2025-11-26 18:15:48 +03:30
tsconfig.json init 2025-11-22 16:42:06 +03:30
tsconfig.node.json feat: Introduce new dynamic field properties and refine form handling 2025-11-26 18:15:48 +03:30
vite.config.ts init 2025-11-22 16:42:06 +03:30

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is enabled on this template. See this documentation for more information.

Note: This will impact Vite dev & build performances.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])