import Link from "next/link"; import { Fragment } from "react"; import { availabilityAsString } from "@calcom/lib/availability"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { sortAvailabilityStrings } from "@calcom/lib/weekstart"; import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import { Badge, Button, Dropdown, DropdownItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Icon, showToast, } from "@calcom/ui"; export function ScheduleListItem({ schedule, deleteFunction, displayOptions, updateDefault, isDeletable, duplicateFunction, }: { schedule: RouterOutputs["viewer"]["availability"]["list"]["schedules"][number]; deleteFunction: ({ scheduleId }: { scheduleId: number }) => void; displayOptions?: { timeZone?: string; hour12?: boolean; weekStart?: string; }; isDeletable: boolean; updateDefault: ({ scheduleId, isDefault }: { scheduleId: number; isDefault: boolean }) => void; duplicateFunction: ({ scheduleId }: { scheduleId: number }) => void; }) { const { t, i18n } = useLocale(); const { data, isPending } = trpc.viewer.availability.schedule.get.useQuery({ scheduleId: schedule.id }); return (
  • {schedule.name} {schedule.isDefault && ( {t("default")} )}

    {schedule.availability .filter((availability) => !!availability.days.length) .map((availability) => availabilityAsString(availability, { locale: i18n.language, hour12: displayOptions?.hour12, }) ) // sort the availability strings as per user's weekstart (settings) .sort(sortAvailabilityStrings(i18n.language, displayOptions?.weekStart)) .map((availabilityString, index) => ( {availabilityString}
    ))} {(schedule.timeZone || displayOptions?.timeZone) && (

     {schedule.timeZone ?? displayOptions?.timeZone}

    )}

  • ); }