import React from 'react'; import SettingsIcon from '@mui/icons-material/Settings'; import HelpOutlineIcon from '@mui/icons-material/HelpOutline'; import MailOutlineIcon from '@mui/icons-material/MailOutline'; import TableChartIcon from '@mui/icons-material/TableChart'; import DashboardIcon from '@mui/icons-material/Dashboard'; import CheckCircleIcon from '@mui/icons-material/CheckCircle'; import ErrorIcon from '@mui/icons-material/Error'; import LockIcon from '@mui/icons-material/Lock'; interface Integration { id: string; name: string; description: string; icon: string; enabled: boolean; configured: boolean; } interface IntegrationCardProps { integration: Integration; onToggle: (id: string) => void; onSettings: (integration: Integration) => void; onHelp: (integration: Integration) => void; disabled?: boolean; isProUser?: boolean; onProClick?: () => void; } const IntegrationCard: React.FC = ({ integration, onToggle, onSettings, onHelp, disabled = false, isProUser = true, onProClick }) => { const getIcon = (iconName: string) => { const icons: { [key: string]: any } = { 'MailOutline': MailOutlineIcon, 'TableChart': TableChartIcon, 'Dashboard': DashboardIcon, }; const IconComponent = icons[iconName] || MailOutlineIcon; return ; }; const handleToggleChange = () => { if (disabled || !isProUser) return; onToggle(integration.id); }; const handleSettingsClick = () => { if (disabled || !isProUser) return; onSettings(integration); }; const handleHelpClick = (e: React.MouseEvent) => { e.stopPropagation(); onHelp(integration); }; return (
{!isProUser && (
PRO
)}
{getIcon(integration.icon)}

{integration.name}

{integration.configured ? ( Configured ) : ( Not Configured )}

{integration.description}

); }; export default IntegrationCard;