import * as React from "react"; import { z } from "zod/v4"; import { useForm } from "@mantine/form"; import { zod4Resolver } from "mantine-form-zod-resolver"; import { Container, Title, TextInput, Button, PasswordInput, Box, Anchor, Text, } from "@mantine/core"; import useAuth from "@/features/auth/hooks/use-auth"; import classes from "@/features/auth/components/auth.module.css"; import { useTranslation } from "react-i18next"; import SsoCloudSignup from "@/ee/components/sso-cloud-signup.tsx"; import { isCloud } from "@/lib/config.ts"; import { Link } from "react-router-dom"; import APP_ROUTE from "@/lib/app-route.ts"; import { AuthLayout } from "./auth-layout.tsx"; const formSchema = z.object({ workspaceName: z.string().trim().max(50).optional(), name: z.string().min(1, { message: "Name is required" }).max(50), email: z .email({ message: "Invalid email address" }) .min(1, { message: "Email is required" }), password: z.string().min(8, { message: "Password must be at least 8 characters" }), }); type FormValues = z.infer; export function SetupWorkspaceForm() { const { t } = useTranslation(); const { setupWorkspace, isLoading } = useAuth(); // useRedirectIfAuthenticated(); const form = useForm({ validate: zod4Resolver(formSchema), initialValues: { workspaceName: "", name: "", email: "", password: "", }, }); async function onSubmit(data: FormValues) { await setupWorkspace(data); } return ( {t("Create workspace")} {isCloud() && }
{!isCloud() && ( )}
{isCloud() && ( {t("Already part of an existing workspace?")}{" "} {t("Sign-in")} )}
); }