import React from 'react'; import { Input, Checkbox, Button } from 'antd'; import cn from 'classnames' function ColumnsModal({ columns, onSelect, hiddenCols, topOffset = 'top-28' }: { columns: { title: string; key: string }[]; onSelect: (col: string[]) => void; hiddenCols: string[]; topOffset?: string; }) { const [query, setQuery] = React.useState(''); const [selected, setSelected] = React.useState( columns.map((col) => col.key).filter((col) => !hiddenCols.includes(col)) ); const onConfirm = () => { onSelect(selected); }; const onToggle = (col: string, isSelected: boolean) => { const newList = isSelected ? [...selected, col] : selected.filter((c) => c !== col); setSelected(newList); }; const searchRe = new RegExp(query, 'ig'); const filteredList = columns.filter((col) => searchRe.test(col.title)); return (
Show/Hide Columns
Select columns to display. Rearrange them in the table view.
setQuery(e.target.value)} /> {filteredList.map((col) => ( onToggle(col.key, e.target.checked)} checked={selected.includes(col.key)} > {col.title} ))}
); } export default ColumnsModal;