import { Group, Text, Button, Box } from "@mantine/core"; import { useTranslation } from "react-i18next"; import { IntegrationDefinition, UserConnection } from "../types/integration.types"; import { getIntegrationIcon } from "./integration-icons"; type ConnectionRowProps = { definition: IntegrationDefinition; connection?: UserConnection; onConnect: (type: string) => void; onDisconnect: (integrationId: string) => void; disconnectingId?: string; }; export default function ConnectionRow({ definition, connection, onConnect, onDisconnect, disconnectingId, }: ConnectionRowProps) { const { t } = useTranslation(); const isWorkspaceScoped = definition.oauth?.connectionScope === 'workspace'; return ( {getIntegrationIcon(definition.type, 28)}
{definition.name} {definition.description}
{isWorkspaceScoped ? ( <> {connection ? ( {t("Linked")} {connection.providerUserId && ` as @${connection.providerUserId}`} ) : ( {t("Use")} /docmost help {t("in")} {definition.name} {t("to link your account.")} )} ) : ( <> {connection ? ( <> {connection.invalidatedAt ? ( <> {t("Connection expired")} ) : ( {t("Connected")} {connection.providerUserId && ` (${connection.providerUserId})`} )} ) : ( )} )}
); }