import React from 'react' import { Button } from './Button' import { cn } from '@/utils/cn' export type IntegrationStatus = 'connected' | 'disconnected' | 'warning' | 'error' export interface IntegrationStatusCardProps { icon?: string title: string status: IntegrationStatus description?: string metadata?: React.ReactNode primaryAction?: { label: string onClick: () => void isLoading?: boolean } secondaryAction?: { label: string onClick: () => void tone?: 'default' | 'danger' } className?: string } const statusConfig: Record< IntegrationStatus, { label: string; badge: string; dot: string; icon: string; iconWrap: string; iconText: string } > = { connected: { label: '연결됨', badge: 'bg-teal-50 text-teal-700', dot: 'bg-teal-500', icon: 'check_circle', iconWrap: 'bg-teal-50', iconText: 'text-teal-500', }, disconnected: { label: '미연결', badge: 'bg-slate-100 text-slate-600', dot: 'bg-slate-400', icon: 'link_off', iconWrap: 'bg-slate-100', iconText: 'text-slate-500', }, warning: { label: '다시 연결 필요', badge: 'bg-amber-50 text-amber-700', dot: 'bg-amber-500', icon: 'warning', iconWrap: 'bg-amber-50', iconText: 'text-amber-500', }, error: { label: '오류', badge: 'bg-red-50 text-red-600', dot: 'bg-red-500', icon: 'error', iconWrap: 'bg-red-50', iconText: 'text-red-500', }, } export const IntegrationStatusCard: React.FC = ({ icon, title, status, description, metadata, primaryAction, secondaryAction, className, }) => { const cfg = statusConfig[status] return (

{title}

{description && (

{description}

)}
{cfg.label}
{metadata && (
{metadata}
)} {(primaryAction || secondaryAction) && (
{secondaryAction && ( )} {primaryAction && ( )}
)}
) }