1

Trying to implement a NumberRangeColumnFilter, outside of the table on a specific column. Basically using globalFilter.

I converted the SelectColumnFilter from example to a global select filter outside of the table like below.

function GlobalSelectFilter({
    preGlobalFilteredRows,
    globalFilter,
    setGlobalFilter,
}) {
    const [value] = React.useState(globalFilter)
    const options = React.useMemo(() => {
        const options = new Set()
        preGlobalFilteredRows.forEach(row => {
            options.add(row.values['priority'])
        })
        return [...options.values()]
    }, ['priority', preGlobalFilteredRows])

    return (
        <span>
            <select
                value={value}
                onChange={e => {
                    setGlobalFilter((e.target.value == 'All' ? undefined : e.target.value) || undefined)
                }}
            >
                <option value="">All</option>
                {options.map((option: any, i) => (
                    <option key={i} value={option}>
                        {option}
                    </option>
                ))}
            </select>
        </span>
    )
}

But when I am trying to use NumberRangeColumnFilter example for a Global NumberRangeColumnFilter, the globalFilter doesnt take an array like filterValue = []

Is my approach entirely wrong? How would one achieve this min max range thing for globalFiltering. An example would really help. Also trying to do this with date range filtering.

Nishant Koli
  • 71
  • 1
  • 7

0 Answers0