Skip to main content

useProjectForm

The useProjectForm hook is a custom hook used to handle the logic ( input, validation, etc ) behind the form regarding project data.

Components

Form Initialization

The hook uses the useForm hook from Mantine to initialize the form with either the provided initialValues or default values. It also sets up form validation using Zod.

Mutation Hooks

The hook uses the useAddProjectMutation and useUpdateProjectMutation hooks to handle adding and updating projects.

Image Handling Functions

The hook provides several functions to handle image selection:

  • handleCustomImage: Sets the form's image value to a selected file and sets useDefaultImage to false.
  • handleDefaultImage: Sets the form's image value to a selected URL.
  • handleClearImage: Resets the form's image value to the default image and sets useDefaultImage to true.

Form Submission

The handleSubmit function validates the form, constructs a project object from the form values, and triggers either an add or update mutation depending on whether an id is present in the form values.

Behavior

This hook returns the form values and its handling functions, image handling functions and submission function