"use client"; import type { ReactNode } from "react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Avatar } from "@calcom/ui/components/avatar"; import { Badge } from "@calcom/ui/components/badge"; import { ChevronRightIcon, KeyIcon } from "@coss/ui/icons"; import type { OAuthClientDetails } from "./view/OAuthClientDetailsDialog"; const getStatusBadge = (status: string, t: (key: string) => string): ReactNode => { switch (status) { case "APPROVED": return {t("approved")}; case "REJECTED": return {t("rejected")}; case "PENDING": default: return {t("pending")}; } }; export const OAuthClientsList = ({ clients, onSelectClient, showStatus = true, }: { clients: OAuthClientDetails[]; onSelectClient: (client: OAuthClientDetails) => void; showStatus?: boolean; }) => { const { t } = useLocale(); return (
{clients.map((client, index) => (
onSelectClient(client)} role="button" tabIndex={0} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); onSelectClient(client); } }}>
} size="md" />
{client.name}
{client.user?.email &&
{client.user.email}
}
{showStatus && client.status ? getStatusBadge(client.status, t) : null}
))}
); };