import React from 'react'; export interface Column { key: string; label: string; render?: (item: T) => React.ReactNode; width?: string; } export interface DataTableProps { columns: Column[]; data: T[]; keyExtractor: (item: T) => string; onRowClick?: (item: T) => void; emptyMessage?: string; } export function DataTable({ columns, data, keyExtractor, onRowClick, emptyMessage = 'No data available' }: DataTableProps) { if (data.length === 0) { return (

{emptyMessage}

); } return (
{columns.map((column) => ( ))} {data.map((item) => ( onRowClick?.(item)} className={onRowClick ? 'cursor-pointer hover:bg-gray-50 transition-colors' : ''} > {columns.map((column) => ( ))} ))}
{column.label}
{column.render ? column.render(item) : (item as any)[column.key]}
); }