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]),
}))}
/>
);
};