Record of { [columnId]: { filterVariant, filterData: [] } } for
every column whose meta.filterVariant is defined and that has
a non-empty id.
const filterConfig = getColumnFilterConfig();
// => {
// title: { filterVariant: "text", filterData: [] },
// supplier: { filterVariant: "select", filterData: [] },
// country: { filterVariant: "select", filterData: [] },
// shipping: { filterVariant: "select", filterData: [] },
// availability: { filterVariant: "select", filterData: [] },
// description: { filterVariant: "text", filterData: [] },
// price: { filterVariant: "range", filterData: [] },
// quantity: { filterVariant: "range", filterData: [] },
// uom: { filterVariant: "select", filterData: [] },
// }
export function getColumnFilterConfig() {
return TableColumns().reduce<Record<string, { filterVariant: string; filterData: unknown[] }>>(
(accu, column) => {
const filterVariant = column.meta?.filterVariant;
if (filterVariant === undefined || !column.id) return accu;
accu[column.id] = {
filterVariant,
filterData: [],
};
return accu;
},
{},
);
}
Builds a seed filter-config object from the column definitions, keyed by column id. Each filterable column contributes one entry with its
filterVariantand an emptyfilterDataarray ready to be populated as search results stream in.