import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform"; import { Dialog } from "@calcom/features/components/controlled-dialog"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import classNames from "@calcom/ui/classNames"; import { Alert } from "@calcom/ui/components/alert"; import { DialogClose, DialogContent } from "@calcom/ui/components/dialog"; import { EmptyScreen } from "@calcom/ui/components/empty-screen"; import { Switch } from "@calcom/ui/components/form"; import { ListItem, ListItemText, ListItemTitle } from "@calcom/ui/components/list"; import { SkeletonContainer, SkeletonText } from "@calcom/ui/components/skeleton"; import Image from "next/image"; import Link from "next/link"; import { Fragment } from "react"; type IOverlayCalendarSettingsModalProps = { open?: boolean; onClose?: (state: boolean) => void; onClickNoCalendar?: () => void; onToggleConnectedCalendar: (externalCalendarId: string, credentialId: number) => void; checkIsCalendarToggled: (externalCalendarId: string, credentialId: number) => boolean; }; const SkeletonLoader = (): JSX.Element => { return (
); }; export function OverlayCalendarSettingsModal({ open, onClose, onClickNoCalendar, onToggleConnectedCalendar, checkIsCalendarToggled, }: IOverlayCalendarSettingsModalProps): JSX.Element { const { t } = useLocale(); const isPlatform = useIsPlatform(); const { data, isPending: isLoading } = trpc.viewer.calendars.connectedCalendars.useQuery(undefined, { enabled: !!open, }); let content: React.ReactNode; if (isLoading) { content = ; } else if (data?.connectedCalendars.length === 0) { content = ( ); } else { content = data?.connectedCalendars.map((item) => ( {item.error && !item.calendars && } {item?.error === undefined && item.calendars && (
{item.integration.logo && ( {`${item.integration.title} )}
{item.integration.name || item.integration.title} {item.primary?.email}
    {item.calendars.map((cal, index) => { const id = cal.integrationTitle ?? `calendar-switch-${index}`; return (
  • { onToggleConnectedCalendar(cal.externalId, item.credentialId); }} />
  • ); })}
)}
)); } return (
{content}
{t("done")}
); }