15768: moving checkedlist to store Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
[arvados.git] / src / store / multiselect / multiselect-reducer.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { multiselectActions } from "./multiselect-actions";
6 import { TCheckedList } from "components/data-table/data-table";
7
8 type MultiselectToolbarState = {
9     isVisible: boolean;
10     checkedList: TCheckedList;
11 };
12
13 const multiselectToolbarInitialState = {
14     isVisible: false,
15     checkedList: {},
16 };
17
18 export const multiselectReducer = (state: MultiselectToolbarState = multiselectToolbarInitialState, action) => {
19     if (action.type === multiselectActions.TOGGLE_VISIBLITY) return { ...state, isVisible: action.payload };
20     if (action.type === multiselectActions.SET_CHECKEDLIST) return { ...state, checkedList: action.payload };
21     if (action.type === multiselectActions.DESELECT_ONE) {
22         return { ...state, checkedList: { ...state.checkedList, [action.payload]: false } };
23     }
24     return state;
25 };
26
27 const updateCheckedList = (uuid: string, newValue: boolean, checkedList: TCheckedList) => {
28     return;
29     // const newList = { ...checkedList };
30     // newList[uuid] = newValue;
31     // return newList;
32 };