'use client' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Textarea } from "@/components/ui/textarea" import { ArrowLeft, Save, Star, ChevronLeft, ChevronRight } from "lucide-react" import { useState } from "react" import type { ToEvaluateDatasetRecord, TemplateResult } from './TemplateManager' interface TemplateEvaluateStepProps { evaluatedData: ToEvaluateDatasetRecord[] setEvaluatedData: (data: ToEvaluateDatasetRecord[]) => void templateResult: TemplateResult | null onSaveExport: () => void onBackToResults: () => void } export default function TemplateEvaluateStep({ evaluatedData, setEvaluatedData, templateResult, onSaveExport, onBackToResults }: TemplateEvaluateStepProps) { const [currentPage, setCurrentPage] = useState(1) const recordsPerPage = 10 const totalRecords = evaluatedData.length const totalPages = Math.ceil(totalRecords / recordsPerPage) const startIndex = (currentPage - 1) * recordsPerPage const endIndex = startIndex + recordsPerPage const currentRecords = evaluatedData.slice(startIndex, endIndex) const goToPage = (page: number) => { setCurrentPage(Math.max(1, Math.min(page, totalPages))) } const handleScoreChange = (recordId: string, score: number) => { setEvaluatedData( evaluatedData.map(record => record.id === recordId ? { ...record, score } : record ) ) } const handleCommentChange = (recordId: string, comments: string) => { setEvaluatedData( evaluatedData.map(record => record.id === recordId ? { ...record, comments } : record ) ) } const StarRating = ({ recordId, currentRating }: { recordId: string, currentRating: number }) => { const [hoveredRating, setHoveredRating] = useState(0) return (
{[1, 2, 3, 4, 5].map((star) => ( handleScoreChange(recordId, star)} onMouseEnter={() => setHoveredRating(star)} onMouseLeave={() => setHoveredRating(0)} /> ))}
) } return (

Evaluate Dataset

Add quality scores and comments to each record {totalRecords > recordsPerPage && ( • Showing {startIndex + 1}-{Math.min(endIndex, totalRecords)} of {totalRecords} records )}

Quality Evaluation Rate each record's quality from 1 (poor) to 5 (excellent) and add comments
{currentRecords.map((record, index) => (

Record {startIndex + index + 1}

{Object.entries(record).filter(([key]) => // {.slice(0, 3)} key !== 'id' && key !== 'score' && key !== 'rating' && key !== 'comments' ).map(([key, value]) => (
{key.replace(/_/g, ' ')}:{' '} {typeof value === 'object' ? JSON.stringify(value, null, 2) : String(value)}
))}
{/* Scoring and Comments Section */}