actionDeleteSelected.tsx 996 B

123456789101112131415161718192021222324252627282930
  1. import { Action } from "./types";
  2. import { deleteSelectedElements, isSomeElementSelected } from "../scene";
  3. import { KEYS } from "../keys";
  4. import { ToolButton } from "../components/ToolButton";
  5. import React from "react";
  6. import { trash } from "../components/icons";
  7. import { t } from "../i18n";
  8. export const actionDeleteSelected: Action = {
  9. name: "deleteSelectedElements",
  10. perform: (elements, appState) => {
  11. return {
  12. elements: deleteSelectedElements(elements),
  13. appState: { ...appState, elementType: "selection", multiElement: null },
  14. };
  15. },
  16. contextItemLabel: "labels.delete",
  17. contextMenuOrder: 3,
  18. commitToHistory: (_, elements) => isSomeElementSelected(elements),
  19. keyTest: event => event.key === KEYS.BACKSPACE || event.key === KEYS.DELETE,
  20. PanelComponent: ({ updateData }) => (
  21. <ToolButton
  22. type="button"
  23. icon={trash}
  24. title={t("labels.delete")}
  25. aria-label={t("labels.delete")}
  26. onClick={() => updateData(null)}
  27. />
  28. ),
  29. };