selection.js 694 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { toggle } from 'misago/utils/sets';
  2. export const SELECT_ALL = 'SELECT_ALL';
  3. export const SELECT_NONE = 'SELECT_NONE';
  4. export const SELECT_ITEM = 'SELECT_ITEM';
  5. export function all(itemsIds) {
  6. return {
  7. type: SELECT_ALL,
  8. items: itemsIds
  9. };
  10. }
  11. export function none() {
  12. return {
  13. type: SELECT_NONE
  14. };
  15. }
  16. export function item(itemId) {
  17. return {
  18. type: SELECT_ITEM,
  19. item: itemId
  20. };
  21. }
  22. export default function selection(state=[], action=null) {
  23. switch (action.type) {
  24. case SELECT_ALL:
  25. return action.items;
  26. case SELECT_NONE:
  27. return [];
  28. case SELECT_ITEM:
  29. return toggle(state, action.item);
  30. default:
  31. return state;
  32. }
  33. }