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.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) => (