import { blue, orange } from '@ant-design/colors'; import { MenuFoldOutlined, MinusCircleOutlined, PlusCircleFilled, PlusCircleOutlined, } from '@ant-design/icons'; import { Button, Col, Input, Popover, Table, Typography } from 'antd'; import AddToQueryHOC from 'components/Logs/AddToQueryHOC'; import CopyClipboardHOC from 'components/Logs/CopyClipboardHOC'; import flatten from 'flat'; import { fieldSearchFilter } from 'lib/logs/fieldSearch'; import React, { useMemo, useState } from 'react'; import ActionItem from './ActionItem'; function TableView({ logData }) { const [fieldSearchInput, setFieldSearchInput] = useState(''); const flattenLogData = useMemo(() => (logData ? flatten(logData) : null), [ logData, ]); if (logData === null) { return null; } const dataSource = Object.keys(flattenLogData) .filter((field) => fieldSearchFilter(field, fieldSearchInput)) .map((key) => { return { key, field: key, value: JSON.stringify(flattenLogData[key]), }; }); const columns = [ { title: 'Action', width: 75, render: (fieldData) => ( ), }, { title: 'Field', dataIndex: 'field', key: 'field', width: '35%', render: (field: string) => ( {' '} {field} ), }, { title: 'Value', dataIndex: 'value', key: 'value', ellipsis: false, render: (field) => ( {field} ), width: '60%', }, ]; return (
setFieldSearchInput(e.target.value)} /> ); } export default TableView;