@@ -5,6 +5,7 @@ import { Button } from '../ui/button'
55import { useLogs } from '@/lib/hooks/use-logs'
66import { Tooltip , TooltipContent , TooltipTrigger } from '../ui/tooltip'
77import { format } from 'date-fns/format'
8+ import { ansiToReact } from './ansi'
89
910const Logs : React . FC = ( ) => {
1011 const { data : logs , purgeLogs } = useLogs ( '/api/logs' )
@@ -23,9 +24,9 @@ const Logs: React.FC = () => {
2324 Purge Logs
2425 </ Button >
2526 </ div >
26- < div className = "flex gap-3 border-b pb-2 text-lg font-semibold" >
27- < span className = "w-[200px]" > Time</ span >
28- < span className = "w-[150px]" > Service</ span >
27+ < div className = "grid grid-cols-[200px_150px_1fr] gap-x -3 border-b pb-2 text-lg font-semibold" >
28+ < span > Time</ span >
29+ < span > Service</ span >
2930 < span > Message</ span >
3031 </ div >
3132 < div className = "mt-1 flex flex-col font-mono text-sm" >
@@ -35,7 +36,7 @@ const Logs: React.FC = () => {
3536 < div
3637 key = { i }
3738 className = { cn (
38- 'mt-0.5 flex cursor-pointer items-start gap-x-2 whitespace-pre-wrap rounded-sm px-1 py-[2px] hover:bg-gray-100 dark:hover:bg-gray-700' ,
39+ 'mt-0.5 grid cursor-pointer grid-cols-[200px_150px_1fr] items-start gap-x-2 whitespace-pre-wrap rounded-sm px-1 py-[2px] hover:bg-gray-100 dark:hover:bg-gray-700' ,
3940 {
4041 'bg-red-100 hover:bg-red-200 dark:bg-red-800/70 dark:hover:bg-red-800/90' :
4142 msg . toLowerCase ( ) . includes ( 'error' ) ,
@@ -55,7 +56,9 @@ const Logs: React.FC = () => {
5556 < p > { serviceName } </ p >
5657 </ TooltipContent >
5758 </ Tooltip >
58- < span className = "border-l pl-2" > { formattedLine } </ span >
59+ < span className = "border-l pl-2" >
60+ { ansiToReact ( formattedLine ) }
61+ </ span >
5962 </ div >
6063 )
6164 } ) }
0 commit comments