@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
30 lines (29 loc) • 1.03 kB
JavaScript
import { ensurePluginOrder } from "react-table";
//#region src/Table/hooks/useHvSortBy.ts
var getHeaderPropsHook = (props, { instance, column }) => {
const { isMultiSortEvent = (e) => e.shiftKey } = instance;
const sortDirection = column.isSortedDesc ? "descending" : "ascending";
return [props, {
sortable: column.canSort,
sorted: column.isSorted,
sortDirection: column.isSorted ? sortDirection : void 0,
onClick: column.canSort ? (e) => {
e.persist();
column.toggleSortBy(void 0, !instance.disableMultiSort && isMultiSortEvent(e));
} : void 0
}];
};
var getCellPropsHook = (props, { cell }) => {
return [props, { sorted: cell.column.isSorted }];
};
var useInstanceHook = (instance) => {
ensurePluginOrder(instance.plugins, ["useSortBy"], "useHvSortBy");
};
var useHvSortBy = (hooks) => {
hooks.getHeaderProps.push(getHeaderPropsHook);
hooks.getCellProps.push(getCellPropsHook);
hooks.useInstance.push(useInstanceHook);
};
useHvSortBy.pluginName = "useHvSortBy";
//#endregion
export { useHvSortBy };