import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import showToast from "@calcom/lib/notification"; import { trpc } from "@calcom/trpc/react"; import { Button } from "@calcom/ui"; import { Dialog, DialogClose, DialogContent, DialogTrigger } from "@calcom/ui/Dialog"; import { Icon } from "@calcom/ui/Icon"; import { Form } from "@calcom/ui/form/fields"; import { HttpError } from "@lib/core/http/error"; export function NewScheduleButton({ name = "new-schedule" }: { name?: string }) { const router = useRouter(); const { t } = useLocale(); const form = useForm<{ name: string; }>(); const { register } = form; const createMutation = trpc.useMutation("viewer.availability.schedule.create", { onSuccess: async ({ schedule }) => { await router.push("/availability/" + schedule.id); showToast(t("schedule_created_successfully", { scheduleName: schedule.name }), "success"); }, onError: (err) => { if (err instanceof HttpError) { const message = `${err.statusCode}: ${err.message}`; showToast(message, "error"); } if (err.data?.code === "UNAUTHORIZED") { const message = `${err.data.code}: You are not able to create this event`; showToast(message, "error"); } }, }); return (
{ createMutation.mutate(values); }}>
); }