import { ColumnDef } from '@tanstack/react-table'; import { DataTableColumnHeader } from '@/components/data-table-column-header'; import { Badge } from '@/components/ui/badge'; import { Eye } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; export interface SystemLog { id: number; timestamp: string; env: string; level: string; message: string; } interface ColumnProps { onView: (log: SystemLog) => void; } const getLevelColor = (level: string) => { switch (level.toUpperCase()) { case 'EMERGENCY': case 'ALERT': case 'CRITICAL': case 'ERROR': return 'destructive'; case 'WARNING': return 'outline'; // Fallback if no warning variant case 'NOTICE': case 'INFO': return 'secondary'; case 'DEBUG': return 'outline'; default: return 'default'; } } export const getColumns = ({ onView }: ColumnProps): ColumnDef[] => [ { accessorKey: "timestamp", header: ({ column }) => ( ), cell: ({ row }) => {row.original.timestamp}, meta: { title: "Waktu" }, }, { accessorKey: "level", header: ({ column }) => ( ), cell: ({ row }) => { const level = row.original.level; return ( {level} ); }, meta: { title: "Level" }, }, { accessorKey: "message", header: ({ column }) => ( ), cell: ({ row }) => { const message = row.original.message; return (
{message}
); }, meta: { title: "Pesan" }, }, { id: "actions", header: "Aksi", cell: ({ row }) => { const log = row.original; return (

Detail

); }, meta: { title: "Aksi" }, }, ];