import { RestoreFromTrashIcon, TrashIcon } from "components/icon/icon";
import { multiselectActionsFilters, TMultiselectActionsFilters, contextMenuActionConsts } from "./ms-toolbar-action-filters";
import { kindToActionSet, findActionByName } from "./ms-kind-action-differentiator";
-import { toggleTrashAction } from "views-components/context-menu/action-sets/project-action-set";
+import { msToggleTrashAction } from "views-components/multiselect-toolbar/ms-project-action-set";
import { copyToClipboardAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { ContainerRequestResource } from "models/container-request";
type CssRules = "root" | "button";
const currentPathIsTrash = window.location.pathname === "/trash";
const buttons =
currentPathIsTrash && selectedToKindSet(checkedList).size
- ? [toggleTrashAction]
+ ? [msToggleTrashAction]
: selectActionsByKind(currentResourceKinds, multiselectActionsFilters);
return (
- <Toolbar
- className={classes.root}
- style={{ width: `${buttons.length * 2.12}rem` }}>
- {buttons.length ? (
- buttons.map((btn, i) =>
- btn.name === "ToggleTrashAction" ? (
- <Tooltip
- className={classes.button}
- title={currentPathIsTrash ? "Restore selected" : "Move to trash"}
- key={i}
- disableFocusListener>
- <IconButton onClick={() => props.executeMulti(btn, checkedList, props.resources)}>
- {currentPathIsTrash ? <RestoreFromTrashIcon /> : <TrashIcon />}
- </IconButton>
- </Tooltip>
- ) : (
- <Tooltip
- className={classes.button}
- title={btn.name}
- key={i}
- disableFocusListener>
- <IconButton onClick={() => props.executeMulti(btn, checkedList, props.resources)}>
- {btn.icon ? btn.icon({}) : <></>}
- </IconButton>
- </Tooltip>
+ <React.Fragment>
+ <Toolbar
+ className={classes.root}
+ style={{ width: `${buttons.length * 2.12}rem` }}>
+ {buttons.length ? (
+ buttons.map((btn, i) =>
+ btn.name === "ToggleTrashAction" ? (
+ <Tooltip
+ className={classes.button}
+ title={currentPathIsTrash ? "Restore selected" : "Move to trash"}
+ key={i}
+ disableFocusListener>
+ <IconButton onClick={() => props.executeMulti(btn, checkedList, props.resources)}>
+ {currentPathIsTrash ? <RestoreFromTrashIcon /> : <TrashIcon />}
+ </IconButton>
+ </Tooltip>
+ ) : (
+ <Tooltip
+ className={classes.button}
+ title={btn.name}
+ key={i}
+ disableFocusListener>
+ <IconButton onClick={() => props.executeMulti(btn, checkedList, props.resources)}>
+ {btn.icon ? btn.icon({}) : <></>}
+ </IconButton>
+ </Tooltip>
+ )
)
- )
- ) : (
- <></>
- )}
- </Toolbar>
+ ) : (
+ <></>
+ )}
+ </Toolbar>
+ </React.Fragment>
);
})
);
function groupByKind(checkedList: TCheckedList, resources: ResourcesState): Record<string, ContextMenuResource[]> {
const result = {};
selectedToArray(checkedList).forEach(uuid => {
- const resource = getResource(uuid)(resources) as Resource;
+ const resource = getResource(uuid)(resources) as ContainerRequestResource | Resource;
if (!result[resource.kind]) result[resource.kind] = [];
result[resource.kind].push(resource);
});
//--------------------------------------------------//
function mapStateToProps(state: RootState) {
- const { isVisible, checkedList } = state.multiselect;
- // console.log(state.multiselect.checkedList); //here
return {
- checkedList: checkedList as TCheckedList,
+ checkedList: state.multiselect.checkedList as TCheckedList,
resources: state.resources,
};
}
switch (selectedAction.name) {
case contextMenuActionConsts.MOVE_TO:
case contextMenuActionConsts.REMOVE:
- const firstResource = getResource(selectedToArray(checkedList)[0])(resources) as Resource;
+ const firstResource = getResource(selectedToArray(checkedList)[0])(resources) as ContainerRequestResource | Resource;
const action = findActionByName(selectedAction.name as string, kindToActionSet[firstResource.kind]);
if (action) action.execute(dispatch, kindGroups[firstResource.kind]);
break;