diff --git a/client/src/components/MultiSelect/index.tsx b/client/src/components/MultiSelect/index.tsx index 7d184e1..b187862 100644 --- a/client/src/components/MultiSelect/index.tsx +++ b/client/src/components/MultiSelect/index.tsx @@ -72,7 +72,7 @@ export default function MultiSelect({ leaveTo="opacity-0" afterLeave={() => setQuery("")} > - + {filteredPeople.length === 0 && query !== "" ? (
Nu am găsit niciun domeniu similar. diff --git a/client/src/pages/CreateMentor/index.tsx b/client/src/pages/CreateMentor/index.tsx index be1742d..dc6b38e 100644 --- a/client/src/pages/CreateMentor/index.tsx +++ b/client/src/pages/CreateMentor/index.tsx @@ -1,9 +1,7 @@ -import React from "react"; +import React, { useMemo } from "react"; import Section from "@/components/Section"; import Heading from "@/components/Heading"; -import Input from "@/components/Input"; import Button from "@/components/Button"; -import Select from "@/components/Select"; import { useCreateMentorMutation, useGetDimensionsQuery, @@ -11,17 +9,18 @@ import { } from "@/redux/api/userApi"; import { SubmitHandler, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod/dist/zod"; -import { object, string, TypeOf } from "zod"; -import { LoginInput } from "@/pages/public/Login"; +import { array, number, object, string, TypeOf } from "zod"; +import { ErrorMessage } from "@hookform/error-message"; +import MultiSelect from "@/components/MultiSelect"; const mentorSchema = object({ - firstName: string(), lastName: string(), - email: string(), + firstName: string(), + email: string().email(), bio: string(), expertise: string(), - dimensions: string(), - programs: string(), + dimensions: array(number()), + programs: array(number()), }); export type MentorInput = TypeOf; @@ -33,6 +32,25 @@ const InputField = ({ label, children }) => (
); +const Input = ({ register, name, label, errors, ...rest }) => ( +
+ +
+ + {errors && ( +
+ +
+ )} +
+
+); + const CreateMentor = () => { const { data: programs, isLoading: isLoadingPrograms } = useGetProgramsQuery(); @@ -48,11 +66,35 @@ const CreateMentor = () => { resolver: zodResolver(mentorSchema), }); - const onSubmitHandler: SubmitHandler = (values) => { - console.log("values", values); - createMentor(values); + const onSubmitHandler: SubmitHandler = (values) => { + createMentor({ + ...values, + role: 4, + username: values.email, + password: "temporary-password", + }); }; + const programsOptions = useMemo( + () => + programs?.map(({ id, name }) => ({ + id: id, + name: name, + label: name, + })), + [programs] + ); + + const dimensionsOptions = useMemo( + () => + dimensions?.map(({ id, name }) => ({ + id: id, + name: name, + label: name, + })), + [dimensions] + ); + return (
@@ -64,66 +106,75 @@ const CreateMentor = () => { +
+ +
+
+ +
+
+ +