saleor-dashboard/src/hooks/useBulkActions.ts

34 lines
598 B
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import { Node } from "../types";
2019-08-09 11:14:35 +00:00
import useListActions from "./useListActions";
2019-06-19 14:40:52 +00:00
function useBulkActions(initial: string[] = []) {
2019-08-09 11:14:35 +00:00
const {
add,
isSelected,
listElements,
remove,
reset,
set,
toggle
} = useListActions<string>(initial);
2019-06-19 14:40:52 +00:00
function toggleAll(items: Node[], selected: number) {
const allItems = items.map(item => item.id);
reset();
if (selected !== allItems.length) {
2019-08-09 11:14:35 +00:00
set(allItems);
2019-06-19 14:40:52 +00:00
}
}
return {
add,
isSelected,
listElements,
remove,
reset,
toggle,
toggleAll
};
}
export default useBulkActions;