import React, { useState } from 'react'; import { Table, Input, Button, Space } from 'antd'; //@ts-ignore import Highlighter from 'react-highlight-words'; import { SearchOutlined } from '@ant-design/icons'; export const ResponseValues = ({ data }: { data: JSON }) => { const [searchText, setSearchText] = useState(''); const [searchedColumn, setSearchedColumn] = useState(''); const getColumnSearchProps = (dataIndex: string) => ({ filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters, }: any) => (
setSelectedKeys(e.target.value ? [e.target.value] : []) } onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)} style={{ marginBottom: 8, display: 'block' }} />
), filterIcon: (filtered: any) => ( ), onFilter: (value: any, record: any) => record[dataIndex] ? record[dataIndex] .toString() .toLowerCase() .includes(value.toLowerCase()) : '', render: (text: any) => //@ts-ignore searchedColumn === dataIndex ? ( ) : ( text ), }); const handleSearch = (selectedKeys: any, confirm: any, dataIndex: any) => { confirm(); setSearchText(selectedKeys[0]); setSearchedColumn(dataIndex); }; const handleReset = (clearFilters: any) => { clearFilters(); setSearchText(''); }; const columns = [ { title: 'Key', dataIndex: 'key', key: 'key', width: '50%', ...getColumnSearchProps('key'), }, { title: 'Value', dataIndex: 'value', key: 'value', width: '50%', ...getColumnSearchProps('value'), }, ]; return ( ({ key, value: JSON.stringify(data[key]), }))} /> ); };