Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

translate.ts 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import Command from "./command"
  2. import history from "../history"
  3. import { TranslateSnapshot } from "state/sessions/translate-session"
  4. import { Data } from "types"
  5. import { getPage } from "utils/utils"
  6. export default function translateCommand(
  7. data: Data,
  8. before: TranslateSnapshot,
  9. after: TranslateSnapshot,
  10. isCloning: boolean
  11. ) {
  12. history.execute(
  13. data,
  14. new Command({
  15. name: isCloning ? "clone_shapes" : "translate_shapes",
  16. category: "canvas",
  17. manualSelection: true,
  18. do(data, initial) {
  19. if (initial) return
  20. const { initialShapes, currentPageId } = after
  21. const { shapes } = getPage(data, currentPageId)
  22. const { clones } = before // !
  23. data.selectedIds.clear()
  24. if (isCloning) {
  25. for (const clone of clones) {
  26. shapes[clone.id] = clone
  27. }
  28. }
  29. for (const { id, point } of initialShapes) {
  30. shapes[id].point = point
  31. data.selectedIds.add(id)
  32. }
  33. },
  34. undo(data) {
  35. const { initialShapes, clones, currentPageId } = before
  36. const { shapes } = getPage(data, currentPageId)
  37. data.selectedIds.clear()
  38. if (isCloning) {
  39. for (const { id } of clones) {
  40. delete shapes[id]
  41. }
  42. }
  43. for (const { id, point } of initialShapes) {
  44. shapes[id].point = point
  45. data.selectedIds.add(id)
  46. }
  47. },
  48. })
  49. )
  50. }