"use client"; import { useEffect, useState } from "react"; import { migrationService } from "@/lib/services/migration.service"; import { MigrationReviewQueueItem, MigrationReviewStatus } from "@/types/migration"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { format } from "date-fns"; import { EyeIcon, FileXIcon } from "lucide-react"; import Link from "next/link"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; export default function MigrationReviewQueuePage() { const [items, setItems] = useState([]); const [loading, setLoading] = useState(true); const [statusFilter, setStatusFilter] = useState("PENDING"); useEffect(() => { fetchData(); }, [statusFilter]); const fetchData = async () => { try { setLoading(true); const res = await migrationService.getReviewQueue({ status: statusFilter === "ALL" ? undefined : (statusFilter as MigrationReviewStatus), limit: 50, }); setItems(res.items); } catch (error) { console.error("Failed to fetch queue", error); } finally { setLoading(false); } }; return (

Migration Review Queue

Review and correct documents that AI flagged as low confidence.

Queue Items - {statusFilter} {loading ? (
Loading queue...
) : items.length === 0 ? (
No items in the queue.
) : (
Document No. Suggested Category Confidence Status Created At Action {items.map((item) => ( {item.documentNumber} {item.aiSuggestedCategory || "Unknown"} 0.8 ? "default" : item.aiConfidence > 0.5 ? "secondary" : "destructive" } > {item.aiConfidence ? (item.aiConfidence * 100).toFixed(1) + "%" : "N/A"} {item.status} {format(new Date(item.createdAt), "dd MMM yyyy, HH:mm")} ))}
)}
); }