'use client' import { memo, useState } from 'react' import Link from 'next/link' import { Edit2, Users } from 'lucide-react' import Modal from './Modal' import ListForm from './ListForm' import DeleteListButton from './DeleteListButton' interface List { id: string title: string color: string items: Array<{ id: string completed: boolean }> collaborators?: Array<{ id: string userId: string permission: string }> } function ListCard({ list }: { list: List }) { const [isEditModalOpen, setIsEditModalOpen] = useState(false) const completedCount = list.items.filter(item => item.completed).length const totalCount = list.items.length const progress = totalCount > 0 ? (completedCount / totalCount) * 100 : 0 const hasCollaborators = list.collaborators && list.collaborators.length > 0 const handleEditClick = (e: React.MouseEvent) => { e.preventDefault() e.stopPropagation() setIsEditModalOpen(true) } const handleDeleteClick = (e: React.MouseEvent) => { e.preventDefault() e.stopPropagation() } return ( <>

{list.title}

{hasCollaborators && list.collaborators && (
{list.collaborators.length}
)}
{completedCount} of {totalCount} completed {Math.round(progress)}%
setIsEditModalOpen(false)} title="Edit List" > setIsEditModalOpen(false)} onSuccess={() => setIsEditModalOpen(false)} /> ) } export default memo(ListCard)