All files / src/components/world renderSceneFolderContextMenu.tsx

0% Statements 0/15
100% Branches 0/0
0% Functions 0/5
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46                                                                                           
import React, { Dispatch } from "react";
import { UnknownAction } from "redux";
import { SceneNormalized } from "shared/lib/entities/entitiesTypes";
import l10n from "shared/lib/lang/l10n";
import { Note } from "shared/lib/resources/types";
import editorActions from "store/features/editor/editorActions";
import entitiesActions from "store/features/entities/entitiesActions";
import { MenuDivider, MenuItem } from "ui/menu/Menu";
 
interface SceneFolderContextMenuProps {
  dispatch: Dispatch<UnknownAction>;
  scenes: SceneNormalized[];
  notes: Note[];
}
 
const renderSceneFolderContextMenu = ({
  scenes,
  notes,
  dispatch,
}: SceneFolderContextMenuProps) => {
  const sceneIds = scenes.map((s) => s.id);
  const noteIds = notes.map((n) => n.id);
  return [
    <MenuItem
      key="select"
      onClick={() =>
        dispatch(editorActions.setSceneSelectionIds([...sceneIds, ...noteIds]))
      }
    >
      {l10n("MENU_SELECT_SCENES")}
    </MenuItem>,
    <MenuDivider key="div-delete" />,
    <MenuItem
      key="delete"
      onClick={() => {
        dispatch(entitiesActions.removeScenes({ sceneIds }));
        dispatch(entitiesActions.removeNotes({ noteIds }));
      }}
    >
      {l10n("MENU_DELETE_FOLDER")}
    </MenuItem>,
  ];
};
 
export default renderSceneFolderContextMenu;