"use client"; import type { Team } from "@prisma/client"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; import type { z } from "zod"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { orgSettingsSchema } from "@calcom/prisma/zod-utils"; import { trpc } from "@calcom/trpc/react"; import { Button, Form, TextField, showToast } from "@calcom/ui"; type FormValues = { name: Team["name"]; slug: Team["slug"]; organizationSettings: z.infer; }; export const OrgForm = ({ org, }: { org: FormValues & { id: Team["id"]; }; }) => { const { t } = useLocale(); const router = useRouter(); const utils = trpc.useUtils(); const mutation = trpc.viewer.organizations.adminUpdate.useMutation({ onSuccess: async () => { await Promise.all([ utils.viewer.organizations.adminGetAll.invalidate(), utils.viewer.organizations.adminGet.invalidate({ id: org.id, }), ]); showToast(t("org_has_been_processed"), "success"); router.replace(`/settings/admin/organizations`); }, onError: (err) => { showToast(err.message, "error"); }, }); const form = useForm({ defaultValues: org, }); const onSubmit = (values: FormValues) => { mutation.mutate({ id: org.id, ...values, organizationSettings: { ...org.organizationSettings, orgAutoAcceptEmail: values.organizationSettings?.orgAutoAcceptEmail, }, }); }; return (

Changing the slug would delete the previous organization domain and DNS and setup new domain and DNS for the organization.

); }; export default OrgForm;