name={uuid}
className={this.props.classes.checkBox}
checked={this.state.checkedList[uuid] ?? false}
- onChange={() => this.handleCheck(uuid)}
+ onChange={() => this.handleSelectOne(uuid)}
onDoubleClick={ev => ev.stopPropagation()}></input>
),
};
this.setState({ checkedList: newCheckedList });
};
+ updateCheckedList = (newList: TCheckedList): void => {
+ this.setState({ checkedList: newList });
+ };
+
isAllSelected = (list: TCheckedList): boolean => {
for (const key in list) {
if (list[key] === false) return false;
return false;
};
- handleCheck = (uuid: string): void => {
+ handleSelectOne = (uuid: string): void => {
const { checkedList } = this.state;
const newCheckedList = { ...checkedList };
newCheckedList[uuid] = !checkedList[uuid];
});
export type MultiselectToolbarProps = {
- isVisible: boolean;
checkedList: TCheckedList;
resources: ResourcesState;
executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => void;
function mapStateToProps(state: RootState) {
const { isVisible, checkedList } = state.multiselect;
- // if (Object.keys(state.dialog).length) console.log("latest dialog", state.dialog); //here
+ // console.log(state.multiselect.checkedList); //here
return {
- isVisible: isVisible,
checkedList: checkedList as TCheckedList,
resources: state.resources,
};
//
// SPDX-License-Identifier: AGPL-3.0
+import { TCheckedList } from "components/data-table/data-table";
+
export const multiselectActions = {
- TOGGLE_VISIBLITY: 'TOGGLE_VISIBLITY',
- SET_CHECKEDLIST: 'SET_CHECKEDLIST',
+ TOGGLE_VISIBLITY: "TOGGLE_VISIBLITY",
+ SET_CHECKEDLIST: "SET_CHECKEDLIST",
+ DESELECT_ONE: "DESELECT_ONE",
};
export const toggleMSToolbar = (isVisible: boolean) => {
- return (dispatch) => {
+ return dispatch => {
dispatch({ type: multiselectActions.TOGGLE_VISIBLITY, payload: isVisible });
};
};
-export const setCheckedListOnStore = (checkedList) => {
- return (dispatch) => {
+export const setCheckedListOnStore = (checkedList: TCheckedList) => {
+ return dispatch => {
dispatch({ type: multiselectActions.SET_CHECKEDLIST, payload: checkedList });
};
};
+
+export const deselectOne = (uuid: string) => {
+ return dispatch => {
+ dispatch({ type: multiselectActions.DESELECT_ONE, payload: uuid });
+ };
+};
//
// SPDX-License-Identifier: AGPL-3.0
-import { multiselectActions } from './multiselect-actions';
-import { TCheckedList } from 'components/data-table/data-table';
+import { multiselectActions } from "./multiselect-actions";
+import { TCheckedList } from "components/data-table/data-table";
type MultiselectToolbarState = {
isVisible: boolean;
export const multiselectReducer = (state: MultiselectToolbarState = multiselectToolbarInitialState, action) => {
if (action.type === multiselectActions.TOGGLE_VISIBLITY) return { ...state, isVisible: action.payload };
if (action.type === multiselectActions.SET_CHECKEDLIST) return { ...state, checkedList: action.payload };
+ if (action.type === multiselectActions.DESELECT_ONE) {
+ return { ...state, checkedList: { ...state.checkedList, [action.payload]: false } };
+ }
return state;
};
+
+const updateCheckedList = (uuid: string, newValue: boolean, checkedList: TCheckedList) => {
+ return;
+ // const newList = { ...checkedList };
+ // newList[uuid] = newValue;
+ // return newList;
+};
import { AdminMenuIcon } from "components/icon/icon";
import { userProfileGroupsColumns } from "views/user-profile-panel/user-profile-panel-root";
import { selectedToArray, selectedToKindSet } from "components/multiselect-toolbar/MultiselectToolbar";
+import { deselectOne } from "store/multiselect/multiselect-actions";
export const WORKBENCH_LOADING_SCREEN = "workbenchLoadingScreen";
link: collection.ownerUuid,
})
);
+ dispatch<any>(deselectOne(copyToProject.uuid));
}
} catch (e) {
dispatch(