@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
14 lines (13 loc) • 667 B
JavaScript
import { useMemo } from "react";
export function useSortableColumnItems(grid, pivotMode) {
const columns = grid.state.columns.useValue();
const pivotColumns = grid.state.columnPivotColumns.useValue();
const base = grid.state.columnBase.useValue();
const candidateColumns = useMemo(() => {
const candidates = pivotMode ? pivotColumns : columns;
return candidates.filter((c) => c.uiHints?.sortable ?? base.uiHints?.sortable);
}, [base.uiHints?.sortable, columns, pivotColumns, pivotMode]);
return useMemo(() => {
return candidateColumns.map((c) => ({ label: c.name ?? c.id, value: c.id }));
}, [candidateColumns]);
}