'use client';
import { Card } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import Link from 'next/link';
import { FileText, Clipboard, Image, Loader2 } from 'lucide-react';
import { SearchResult } from '@/types/search';
import { format } from 'date-fns';
interface SearchResultsProps {
results: SearchResult[];
query: string;
loading: boolean;
}
export function SearchResults({ results, query, loading }: SearchResultsProps) {
if (loading) {
return (
);
}
if (results.length === 0) {
return (
{query ? `No results found for "${query}"` : 'Enter a search term to start'}
);
}
const getIcon = (type: string) => {
switch (type) {
case 'correspondence':
return FileText;
case 'rfa':
return Clipboard;
case 'drawing':
return Image;
default:
return FileText;
}
};
const getLink = (result: SearchResult) => {
return `/${result.type}s/${result.uuid}`; // ADR-019: Use UUID for public routes
};
return (
{results.map((result, index) => {
const Icon = getIcon(result.type);
return (
{result.type}
{result.status}
{result.description}
{result.documentNumber}
•
{format(new Date(result.createdAt), 'dd MMM yyyy')}
);
})}
);
}