import dayjs from "@calcom/dayjs"; import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import { SkeletonText } from "@calcom/ui"; import useRouterQuery from "@lib/hooks/useRouterQuery"; import PageWrapper from "@components/PageWrapper"; type User = RouterOutputs["viewer"]["me"]; export interface IBusySlot { start: string | Date; end: string | Date; title?: string; source?: string | null; } const AvailabilityView = ({ user }: { user: User }) => { const { t } = useLocale(); const { date, setQuery: setSelectedDate } = useRouterQuery("date"); const selectedDate = dayjs(date); const formattedSelectedDate = selectedDate.format("YYYY-MM-DD"); const { data, isLoading } = trpc.viewer.availability.user.useQuery( { username: user.username!, dateFrom: selectedDate.startOf("day").utc().format(), dateTo: selectedDate.endOf("day").utc().format(), withSource: true, }, { enabled: !!user.username, } ); const overrides = data?.dateOverrides.reduce((acc, override) => { if ( formattedSelectedDate !== dayjs(override.start).format("YYYY-MM-DD") && formattedSelectedDate !== dayjs(override.end).format("YYYY-MM-DD") ) return acc; acc.push({ ...override, source: "Date override" }); return acc; }, [] as IBusySlot[]) || []; return (