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";
+import { FavoritesState } from "store/favorites/favorites-reducer";
type CssRules = "root" | "button";
selectedUuid: string | null
resources: ResourcesState;
executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => void;
- favorites: any
+ favorites: FavoritesState
};
export const MultiselectToolbar = connect(
disableFocusListener
>
<IconButton onClick={() => props.executeMulti(action, checkedList, resources)}>
- {action.isDefault(selectedUuid, resources, favorites) ? action.icon && action.icon({}) : action.altIcon && action.altIcon({})}
+ {action.isDefault(selectedUuid, resources, favorites) ? action.icon({}) : action.altIcon && action.altIcon({})}
</IconButton>
</Tooltip>
) : (
key={i}
disableFocusListener
>
- <IconButton onClick={() => props.executeMulti(action, checkedList, resources)}>{action.icon ? action.icon({}) : <></>}</IconButton>
+ <IconButton onClick={() => props.executeMulti(action, checkedList, resources)}>{action.icon({})}</IconButton>
</Tooltip>
)
)
import { MoveToIcon, CopyIcon } from "components/icon/icon";
import { openMoveCollectionDialog } from "store/collections/collection-move-actions";
import { openCollectionCopyDialog, openMultiCollectionCopyDialog } from "store/collections/collection-copy-actions";
-import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
import { toggleCollectionTrashed } from "store/trash/trash-actions";
import { ContextMenuResource } from "store/context-menu/context-menu-actions";
import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from "./ms-menu-action-set";
+import { TrashIcon } from "components/icon/icon";
export const msCollectionActionSet: MultiSelectMenuActionSet = [
[
execute: (dispatch, resources) => dispatch<any>(openMoveCollectionDialog(resources[0])),
},
{
- component: ToggleTrashAction,
name: MultiSelectMenuActionNames.ADD_TO_TRASH,
+ icon: TrashIcon,
isForMulti: true,
execute: (dispatch, resources: ContextMenuResource[]) => {
for (const resource of [...resources]) {
//
// SPDX-License-Identifier: AGPL-3.0
+import { Dispatch } from "redux";
import { IconType } from "components/icon/icon";
-import { ContextMenuAction } from "../context-menu/context-menu-action-set";
import { ResourcesState } from "store/resources/resources";
+import { FavoritesState } from "store/favorites/favorites-reducer";
+import { ContextMenuResource } from "store/context-menu/context-menu-actions";
export const MultiSelectMenuActionNames = {
MAKE_A_COPY: "Make a copy",
REMOVE: "Remove",
};
-export interface MultiSelectMenuAction extends ContextMenuAction {
- defaultText?: string;
+export type MultiSelectMenuAction = {
+ name: string;
+ icon: IconType;
altText?: string;
altIcon?: IconType;
- isDefault?: (uuid: string | null, resources: ResourcesState, favorites) => boolean;
isForMulti: boolean;
-}
+ isDefault?: (uuid: string | null, resources: ResourcesState, favorites: FavoritesState) => boolean;
+ execute(dispatch: Dispatch, resources: ContextMenuResource[], state?: any): void;
+ adminOnly?: boolean;
+};
export type MultiSelectMenuActionSet = MultiSelectMenuAction[][];