'use client'; import Image from 'next/image'; import { Check } from 'lucide-react'; import { toast } from 'sonner'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Checkbox } from '@/components/ui/checkbox'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import type { PhotoItem } from '../types'; interface PhotoTableProps { items: PhotoItem[]; isViewMode: boolean; isEditMode: boolean; selectedItems: Set; onToggleSelection: (itemId: string) => void; onToggleSelectAll: () => void; onApplySelected: () => void; onPhotoSelect?: (itemId: string, photoIndex: number) => void; } export function PhotoTable({ items, isViewMode, isEditMode, selectedItems, onToggleSelection, onToggleSelectAll, onApplySelected, onPhotoSelect, }: PhotoTableProps) { const allSelected = items.length > 0 && items.every((item) => selectedItems.has(item.id)); const handleApply = () => { onApplySelected(); toast.success('적용이 완료되었습니다.'); }; return (
사진대지 전체 {items.length}건 {selectedItems.size > 0 && ( <> / {selectedItems.size}개 항목 선택됨 )}
{isEditMode && selectedItems.size > 0 && ( )}
번호 시공번호 명칭 사진 {items.map((item, index) => ( onToggleSelection(item.id)} disabled={isViewMode} /> {index + 1} {item.constructionNumber} {item.name} {item.photos && item.photos.length > 0 ? (
{item.photos.map((photo, photoIdx) => ( ))}
) : ( - )}
))} {items.length === 0 && ( 데이터가 없습니다. )}
); }