import React from 'react';
import { Table, Tag, Typography } from 'antd';
import Linkify from 'react-linkify';
import { SortOrder } from 'antd/lib/table/interface';
import format from 'date-fns/format';
const { Title } = Typography;
function renderColumnLevel(text, entry) {
  let color = 'black';
  if (entry.level === 'warning') {
    color = 'orange';
  } else if (entry.level === 'error') {
    color = 'red';
  }
  return {text};
}
function renderMessage(text) {
  return {text};
}
interface Props {
  logs: object[];
  pageSize: number;
}
export default function LogTable({ logs, pageSize }: Props) {
  if (!logs?.length) {
    return null;
  }
  const columns = [
    {
      title: 'Level',
      dataIndex: 'level',
      key: 'level',
      filters: [
        {
          text: 'Info',
          value: 'info',
        },
        {
          text: 'Warning',
          value: 'warning',
        },
        {
          text: 'Error',
          value: 'Error',
        },
      ],
      onFilter: (level, row) => row.level.indexOf(level) === 0,
      render: renderColumnLevel,
    },
    {
      title: 'Timestamp',
      dataIndex: 'time',
      key: 'time',
      render: timestamp => {
        const dateObject = new Date(timestamp);
        return format(dateObject, 'pp P');
      },
      sorter: (a, b) => new Date(a.time).getTime() - new Date(b.time).getTime(),
      sortDirections: ['descend', 'ascend'] as SortOrder[],
      defaultSortOrder: 'descend' as SortOrder,
    },
    {
      title: 'Message',
      dataIndex: 'message',
      key: 'message',
      render: renderMessage,
    },
  ];
  return (
    
      Logs
       row.time}
        pagination={{ pageSize: pageSize || 20 }}
      />
    
  );
}