import { ClockIcon } from "@heroicons/react/outline"; import { DotsHorizontalIcon, TrashIcon } from "@heroicons/react/solid"; import { Availability } from "@prisma/client"; import Link from "next/link"; import { availabilityAsString } from "@calcom/lib/availability"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import showToast from "@calcom/lib/notification"; import { Button } from "@calcom/ui"; import Dropdown, { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@calcom/ui/Dropdown"; import { QueryCell } from "@lib/QueryCell"; import { HttpError } from "@lib/core/http/error"; import { inferQueryOutput, trpc } from "@lib/trpc"; import EmptyScreen from "@components/EmptyScreen"; import Shell from "@components/Shell"; import { NewScheduleButton } from "@components/availability/NewScheduleButton"; export function AvailabilityList({ schedules }: inferQueryOutput<"viewer.availability.list">) { const { t, i18n } = useLocale(); const deleteMutation = trpc.useMutation("viewer.availability.schedule.delete", { onSuccess: async () => { showToast(t("schedule_deleted_successfully"), "success"); window.location.reload(); }, onError: (err) => { if (err instanceof HttpError) { const message = `${err.statusCode}: ${err.message}`; showToast(message, "error"); } }, }); return ( <> {schedules.length === 0 ? ( ) : (
)} ); } export default function AvailabilityPage() { const { t } = useLocale(); const query = trpc.useQuery(["viewer.availability.list"]); return (
}> } />
); }