import { useState } from 'react'; import CloseIcon from './icons/CloseIcon'; import { useLinkExistingCard } from '../hooks/useLinkExistingCard'; interface LinkExistingCardModalProps { boardId: number; currentCardId: number; onClose: () => void; onLinked: () => void; } export function LinkExistingCardModal({ boardId, currentCardId, onClose, onLinked, }: LinkExistingCardModalProps) { const [search, setSearch] = useState(''); const [selectedCardId, setSelectedCardId] = useState(null); const { cards, isSubmitting, linkCard } = useLinkExistingCard(boardId, currentCardId); const filteredCards = cards.filter( (c) => c.name.toLowerCase().includes(search.toLowerCase()) || String(c.id_short || c.id).includes(search) ); const handleLink = async () => { if (!selectedCardId) return; const success = await linkCard(selectedCardId); if (success) { onLinked(); onClose(); } }; return (

Link Existing Card

setSearch(e.target.value)} className="w-full bg-gray-700 border border-gray-600 rounded-lg px-3 py-2 text-white placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 mb-3" placeholder="Search cards by name or ID..." autoFocus />
{filteredCards.length === 0 && (

No cards found

)} {filteredCards.map((c) => ( ))}
); }