import React from 'react'; import { useTranslation } from '@/hooks/useI18n.tsx'; import { Organization, Proposal } from '@/types.ts'; import { CheckCircle, Clock, XCircle } from 'lucide-react'; import Badge from '@/components/ui/Badge.tsx'; import Button from '@/components/ui/Button.tsx'; interface ProposalCardProps { proposal: Proposal; partner: Organization; type: 'incoming' | 'outgoing'; onStatusUpdate: (proposalId: string, status: Proposal['status']) => void; } const statusConfig = { pending: { labelKey: 'organizationPage.status.pending', icon: , classes: 'border-warning/30 bg-warning/10 text-warning-foreground', }, accepted: { labelKey: 'organizationPage.status.accepted', icon: , classes: 'border-success/30 bg-success/10 text-success', }, rejected: { labelKey: 'organizationPage.status.rejected', icon: , classes: 'border-destructive/30 bg-destructive/10 text-destructive', }, }; const ProposalCard = ({ proposal, partner, type, onStatusUpdate }: ProposalCardProps) => { const { t } = useTranslation(); const config = statusConfig[proposal.status]; return (

{t( type === 'incoming' ? 'organizationPage.partnershipHub.proposalFrom' : 'organizationPage.partnershipHub.proposalTo' )}

{partner.name}

{config.icon} {t(config.labelKey)}

{t('organizationPage.partnershipHub.regarding')}

{proposal.resourceName}

{proposal.message && (
“{proposal.message}”
)}
{type === 'incoming' && proposal.status === 'pending' && (
)}
); }; export default React.memo(ProposalCard);