actionZindex.tsx 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import React from "react";
  2. import {
  3. moveOneLeft,
  4. moveOneRight,
  5. moveAllLeft,
  6. moveAllRight,
  7. } from "../zindex";
  8. import { KEYS, isDarwin, CODES } from "../keys";
  9. import { t } from "../i18n";
  10. import { getShortcutKey } from "../utils";
  11. import { register } from "./register";
  12. import {
  13. BringForwardIcon,
  14. BringToFrontIcon,
  15. SendBackwardIcon,
  16. SendToBackIcon,
  17. } from "../components/icons";
  18. export const actionSendBackward = register({
  19. name: "sendBackward",
  20. trackEvent: { category: "element" },
  21. perform: (elements, appState) => {
  22. return {
  23. elements: moveOneLeft(elements, appState),
  24. appState,
  25. commitToHistory: true,
  26. };
  27. },
  28. contextItemLabel: "labels.sendBackward",
  29. keyPriority: 40,
  30. keyTest: (event) =>
  31. event[KEYS.CTRL_OR_CMD] &&
  32. !event.shiftKey &&
  33. event.code === CODES.BRACKET_LEFT,
  34. PanelComponent: ({ updateData, appState }) => (
  35. <button
  36. type="button"
  37. className="zIndexButton"
  38. onClick={() => updateData(null)}
  39. title={`${t("labels.sendBackward")} — ${getShortcutKey("CtrlOrCmd+[")}`}
  40. >
  41. {SendBackwardIcon}
  42. </button>
  43. ),
  44. });
  45. export const actionBringForward = register({
  46. name: "bringForward",
  47. trackEvent: { category: "element" },
  48. perform: (elements, appState) => {
  49. return {
  50. elements: moveOneRight(elements, appState),
  51. appState,
  52. commitToHistory: true,
  53. };
  54. },
  55. contextItemLabel: "labels.bringForward",
  56. keyPriority: 40,
  57. keyTest: (event) =>
  58. event[KEYS.CTRL_OR_CMD] &&
  59. !event.shiftKey &&
  60. event.code === CODES.BRACKET_RIGHT,
  61. PanelComponent: ({ updateData, appState }) => (
  62. <button
  63. type="button"
  64. className="zIndexButton"
  65. onClick={() => updateData(null)}
  66. title={`${t("labels.bringForward")} — ${getShortcutKey("CtrlOrCmd+]")}`}
  67. >
  68. {BringForwardIcon}
  69. </button>
  70. ),
  71. });
  72. export const actionSendToBack = register({
  73. name: "sendToBack",
  74. trackEvent: { category: "element" },
  75. perform: (elements, appState) => {
  76. return {
  77. elements: moveAllLeft(elements, appState),
  78. appState,
  79. commitToHistory: true,
  80. };
  81. },
  82. contextItemLabel: "labels.sendToBack",
  83. keyTest: (event) =>
  84. isDarwin
  85. ? event[KEYS.CTRL_OR_CMD] &&
  86. event.altKey &&
  87. event.code === CODES.BRACKET_LEFT
  88. : event[KEYS.CTRL_OR_CMD] &&
  89. event.shiftKey &&
  90. event.code === CODES.BRACKET_LEFT,
  91. PanelComponent: ({ updateData, appState }) => (
  92. <button
  93. type="button"
  94. className="zIndexButton"
  95. onClick={() => updateData(null)}
  96. title={`${t("labels.sendToBack")} — ${
  97. isDarwin
  98. ? getShortcutKey("CtrlOrCmd+Alt+[")
  99. : getShortcutKey("CtrlOrCmd+Shift+[")
  100. }`}
  101. >
  102. {SendToBackIcon}
  103. </button>
  104. ),
  105. });
  106. export const actionBringToFront = register({
  107. name: "bringToFront",
  108. trackEvent: { category: "element" },
  109. perform: (elements, appState) => {
  110. return {
  111. elements: moveAllRight(elements, appState),
  112. appState,
  113. commitToHistory: true,
  114. };
  115. },
  116. contextItemLabel: "labels.bringToFront",
  117. keyTest: (event) =>
  118. isDarwin
  119. ? event[KEYS.CTRL_OR_CMD] &&
  120. event.altKey &&
  121. event.code === CODES.BRACKET_RIGHT
  122. : event[KEYS.CTRL_OR_CMD] &&
  123. event.shiftKey &&
  124. event.code === CODES.BRACKET_RIGHT,
  125. PanelComponent: ({ updateData, appState }) => (
  126. <button
  127. type="button"
  128. className="zIndexButton"
  129. onClick={(event) => updateData(null)}
  130. title={`${t("labels.bringToFront")} — ${
  131. isDarwin
  132. ? getShortcutKey("CtrlOrCmd+Alt+]")
  133. : getShortcutKey("CtrlOrCmd+Shift+]")
  134. }`}
  135. >
  136. {BringToFrontIcon}
  137. </button>
  138. ),
  139. });