import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import slugify from "@calcom/lib/slugify"; import { trpc } from "@calcom/trpc/react"; import { Icon } from "@calcom/ui"; import { Avatar, Button } from "@calcom/ui/components"; import { Form, TextField } from "@calcom/ui/components/form"; import ImageUploader from "@calcom/ui/v2/core/ImageUploader"; import { NewTeamFormValues } from "../lib/types"; export const CreateANewTeamForm = () => { const { t } = useLocale(); const router = useRouter(); const newTeamFormMethods = useForm(); const createTeamMutation = trpc.useMutation(["viewer.teams.create"], { onSuccess: (data) => { router.push(`/settings/teams/${data.id}/onboard-members`); }, }); const validateTeamSlugQuery = trpc.useQuery( ["viewer.teams.validateTeamSlug", { slug: newTeamFormMethods.watch("slug") }], { enabled: false, refetchOnWindowFocus: false, } ); const validateTeamSlug = async () => { await validateTeamSlugQuery.refetch(); if (validateTeamSlugQuery.isFetched) return validateTeamSlugQuery.data || t("team_url_taken"); }; return ( <>
createTeamMutation.mutate(v)}>
( <> { newTeamFormMethods.setValue("name", e?.target.value); if (newTeamFormMethods.formState.touchedFields["slug"] === undefined) { newTeamFormMethods.setValue("slug", slugify(e?.target.value)); } }} autoComplete="off" /> )} />
await validateTeamSlug() }} render={({ field: { value } }) => ( { newTeamFormMethods.setValue("slug", slugify(e?.target.value), { shouldTouch: true, }); }} /> )} />
(
{ newTeamFormMethods.setValue("logo", newAvatar); }} imageSrc={value} />
)} />
{createTeamMutation.isError && (

{createTeamMutation.error.message}

)}
); };