diff --git a/client/src/hooks/forms/UseInitTeamMemberForm.tsx b/client/src/hooks/forms/UseInitTeamMemberForm.tsx index 3830601b4..e6a7601f5 100644 --- a/client/src/hooks/forms/UseInitTeamMemberForm.tsx +++ b/client/src/hooks/forms/UseInitTeamMemberForm.tsx @@ -1,4 +1,4 @@ -import { teamMemberSchema } from "@/validation/zod"; +import { teamMemberSchema } from "@/validation"; import { useMemo } from "react"; import { z } from "zod"; diff --git a/client/src/hooks/forms/UseInitTeamsForm.tsx b/client/src/hooks/forms/UseInitTeamsForm.tsx index eabc71f45..e800906a7 100644 --- a/client/src/hooks/forms/UseInitTeamsForm.tsx +++ b/client/src/hooks/forms/UseInitTeamsForm.tsx @@ -1,4 +1,4 @@ -import { teamSchema } from "@/validation/zod"; +import { teamSchema } from "@/validation"; import { useMemo } from "react"; import { z } from "zod"; diff --git a/client/src/pages/teams/TeamMemberForm.tsx b/client/src/pages/teams/TeamMemberForm.tsx index ee3636ad7..5595da417 100644 --- a/client/src/pages/teams/TeamMemberForm.tsx +++ b/client/src/pages/teams/TeamMemberForm.tsx @@ -9,7 +9,7 @@ import { useTheme } from "@mui/material/styles"; import { zodResolver } from "@hookform/resolvers/zod"; import { useTranslation } from "react-i18next"; import { z } from "zod"; -import { teamMemberSchema } from "@/validation/zod"; +import { teamMemberSchema } from "@/validation"; import { useForm, Controller, type SubmitHandler } from "react-hook-form"; import { useEffect } from "react"; import { useInitForm } from "@/hooks/forms/UseInitTeamMemberForm"; diff --git a/client/src/pages/teams/TeamsConfig.tsx b/client/src/pages/teams/TeamsConfig.tsx index caf1bfa11..6636e79e8 100644 --- a/client/src/pages/teams/TeamsConfig.tsx +++ b/client/src/pages/teams/TeamsConfig.tsx @@ -2,7 +2,7 @@ import { TeamsForm } from "@/pages/teams/TeamsForm"; import { useNavigate, useParams } from "react-router"; import { z } from "zod"; -import { teamSchema } from "@/validation/zod"; +import { teamSchema } from "@/validation"; import { useGet, usePatch, useGetOnDemand } from "@/hooks/UseApi"; import type { ApiResponse } from "@/types/api"; import type { IUser } from "@/types/user"; diff --git a/client/src/pages/teams/TeamsCreate.tsx b/client/src/pages/teams/TeamsCreate.tsx index 29a4e7597..7138a296d 100644 --- a/client/src/pages/teams/TeamsCreate.tsx +++ b/client/src/pages/teams/TeamsCreate.tsx @@ -2,7 +2,7 @@ import { TeamsForm } from "@/pages/teams/TeamsForm"; import { useNavigate } from "react-router"; import { z } from "zod"; -import { teamSchema } from "@/validation/zod"; +import { teamSchema } from "@/validation"; import { useGet, usePost, useGetOnDemand } from "@/hooks/UseApi"; import type { ApiResponse } from "@/types/api"; import { mutate } from "swr"; diff --git a/client/src/pages/teams/TeamsForm.tsx b/client/src/pages/teams/TeamsForm.tsx index 541e7ba62..448476c6b 100644 --- a/client/src/pages/teams/TeamsForm.tsx +++ b/client/src/pages/teams/TeamsForm.tsx @@ -9,7 +9,7 @@ import { useTheme } from "@mui/material/styles"; import { zodResolver } from "@hookform/resolvers/zod"; import { useTranslation } from "react-i18next"; import { z } from "zod"; -import { teamSchema } from "@/validation/zod"; +import { teamSchema } from "@/validation"; import { useForm, Controller, type SubmitHandler } from "react-hook-form"; import { useEffect } from "react"; import { useInitForm } from "@/hooks/forms/UseInitTeamsForm"; diff --git a/client/src/validation/index.ts b/client/src/validation/index.ts index dc36f74f2..b100f0428 100644 --- a/client/src/validation/index.ts +++ b/client/src/validation/index.ts @@ -7,3 +7,4 @@ export * from "./infra"; export * from "./utils"; export * from "./notification-channel"; export * from "./maintenance"; +export * from "./team"; diff --git a/client/src/validation/team.ts b/client/src/validation/team.ts new file mode 100644 index 000000000..401306ec0 --- /dev/null +++ b/client/src/validation/team.ts @@ -0,0 +1,14 @@ +import { z } from "zod"; + +export const teamSchema = z.object({ + name: z.string().min(1, "Team name is required"), + roleId: z.string().min(1, "Role is required"), + description: z.string().optional(), +}); + +export const teamMemberSchema = z.object({ + userId: z.string().min(1, "User is required"), + roleId: z.string().min(1, "Role is required"), + teamId: z.string().min(1, "Team is required"), +}); + diff --git a/client/src/validation/zod.ts b/client/src/validation/zod.ts index 3f1c87374..7d94befa6 100644 --- a/client/src/validation/zod.ts +++ b/client/src/validation/zod.ts @@ -1,6 +1,6 @@ import { z } from "zod"; // humanInterval moved to split schema files -import { MaintenanceRepeats } from "@/types/maintenance"; +// MaintenanceRepeats moved to maintenance schema // urlRegex moved to client/src/validation/utils.ts @@ -20,17 +20,7 @@ const optionalString = (schema: T) => // moved to client/src/validation/pagespeed.ts // moved to client/src/validation/infra.ts -export const teamSchema = z.object({ - name: z.string().min(1, "Team name is required"), - roleId: z.string().min(1, "Role is required"), - description: z.string().optional(), -}); - -export const teamMemberSchema = z.object({ - userId: z.string().min(1, "User is required"), - roleId: z.string().min(1, "Role is required"), - teamId: z.string().min(1, "Team is required"), -}); +// moved to client/src/validation/team.ts export const inviteSchema = z.object({ email: z.email("Invalid email address"),