import * as React from "react"; import * as z from "zod"; import { useForm, zodResolver } from "@mantine/form"; import { Container, Title, TextInput, Button, PasswordInput, Box, Stack, } from "@mantine/core"; import { useParams, useSearchParams } from "react-router-dom"; import { IRegister } from "@/features/auth/types/auth.types"; import useAuth from "@/features/auth/hooks/use-auth"; import classes from "@/features/auth/components/auth.module.css"; import { useGetInvitationQuery } from "@/features/workspace/queries/workspace-query.ts"; import { useRedirectIfAuthenticated } from "@/features/auth/hooks/use-redirect-if-authenticated.ts"; const formSchema = z.object({ name: z.string().min(2), password: z.string().min(8), }); type FormValues = z.infer; export function InviteSignUpForm() { const params = useParams(); const [searchParams] = useSearchParams(); const { data: invitation } = useGetInvitationQuery(params?.invitationId); const { invitationSignup, isLoading } = useAuth(); useRedirectIfAuthenticated(); const form = useForm({ validate: zodResolver(formSchema), initialValues: { name: "", password: "", }, }); async function onSubmit(data: IRegister) { const invitationToken = searchParams.get("token"); await invitationSignup({ invitationId: invitation.id, name: data.name, password: data.password, token: invitationToken, }); } if (!invitation) { return
; } return ( Join the workspace
); }