"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}
))}
);
};