@contentful/experiences-visual-editor-react 0.0.1-alpha.2 → 0.0.1-dev-20240304T2318-9808cfc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ const INCOMING_EVENTS$1 = {
21
21
  ComponentDragCanceled: 'componentDragCanceled',
22
22
  ComponentDragStarted: 'componentDragStarted',
23
23
  ComponentDragEnded: 'componentDragEnded',
24
+ ComponentMoveEnded: 'componentMoveEnded',
24
25
  CanvasResized: 'canvasResized',
25
26
  SelectComponent: 'selectComponent',
26
27
  HoverComponent: 'hoverComponent',
@@ -38,6 +39,7 @@ const INCOMING_EVENTS$1 = {
38
39
  AssembliesAdded: 'assembliesAdded',
39
40
  AssembliesRegistered: 'assembliesRegistered',
40
41
  InitEditor: 'initEditor',
42
+ MouseMove: 'mouseMove',
41
43
  };
42
44
  const CONTENTFUL_COMPONENTS$1 = {
43
45
  section: {
@@ -1493,6 +1495,8 @@ const OUTGOING_EVENTS = {
1493
1495
  UpdateHoveredComponentCoordinates: 'updateHoveredComponentCoordinates',
1494
1496
  CanvasScroll: 'canvasScrolling',
1495
1497
  CanvasError: 'canvasError',
1498
+ ComponentMoveStarted: 'componentMoveStarted',
1499
+ ComponentMoveEnded: 'componentMoveEnded',
1496
1500
  OutsideCanvasClick: 'outsideCanvasClick',
1497
1501
  };
1498
1502
  const INCOMING_EVENTS = {
@@ -1502,6 +1506,7 @@ const INCOMING_EVENTS = {
1502
1506
  ComponentDragCanceled: 'componentDragCanceled',
1503
1507
  ComponentDragStarted: 'componentDragStarted',
1504
1508
  ComponentDragEnded: 'componentDragEnded',
1509
+ ComponentMoveEnded: 'componentMoveEnded',
1505
1510
  CanvasResized: 'canvasResized',
1506
1511
  SelectComponent: 'selectComponent',
1507
1512
  HoverComponent: 'hoverComponent',
@@ -1519,6 +1524,7 @@ const INCOMING_EVENTS = {
1519
1524
  AssembliesAdded: 'assembliesAdded',
1520
1525
  AssembliesRegistered: 'assembliesRegistered',
1521
1526
  InitEditor: 'initEditor',
1527
+ MouseMove: 'mouseMove',
1522
1528
  };
1523
1529
  const INTERNAL_EVENTS = {
1524
1530
  ComponentsRegistered: 'cfComponentsRegistered',
@@ -3136,7 +3142,7 @@ const EditorBlockClone = ({ node: rawNode, resolveDesignValue, snapshot, provide
3136
3142
  return (React.createElement("div", { ref: provided?.innerRef, ...wrapperProps, ...provided?.draggableProps, ...provided?.dragHandleProps, className: classNames(styles$3.DraggableComponent, wrapperProps.className, {
3137
3143
  [styles$3.isAssemblyBlock]: isAssemblyBlock,
3138
3144
  [styles$3.isDragging]: snapshot?.isDragging,
3139
- }), style: getStyle$1(provided?.draggableProps.style, snapshot) }, elementToRender()));
3145
+ }), "data-ctfl-dragging-element": true, style: getStyle$1(provided?.draggableProps.style, snapshot) }, elementToRender()));
3140
3146
  };
3141
3147
 
3142
3148
  function DropzoneClone({ node, zoneId, resolveDesignValue, className, WrapperComponent = 'div', renderDropzone, ...rest }) {
@@ -3492,6 +3498,23 @@ function simulateMouseEvent(coordX, coordY, eventName = 'mousemove') {
3492
3498
  const event = new MouseEvent(eventName, options);
3493
3499
  element.dispatchEvent(event);
3494
3500
  }
3501
+ function simulateComponentMove(coordX, coordY, selector, eventName = 'mousemove') {
3502
+ const element = document.querySelector(selector);
3503
+ const options = {
3504
+ bubbles: true,
3505
+ cancelable: true,
3506
+ view: window,
3507
+ pageX: 0,
3508
+ pageY: 0,
3509
+ clientX: coordX - DRAGGABLE_WIDTH / 2,
3510
+ clientY: coordY - DRAGGABLE_HEIGHT / 2 - window.scrollY,
3511
+ };
3512
+ if (!element) {
3513
+ return;
3514
+ }
3515
+ const event = new MouseEvent(eventName, options);
3516
+ element.dispatchEvent(event);
3517
+ }
3495
3518
 
3496
3519
  function useEditorSubscriber() {
3497
3520
  const entityStore = useEntityStore((state) => state.entityStore);
@@ -3760,6 +3783,16 @@ function useEditorSubscriber() {
3760
3783
  sendSelectedComponentCoordinates(nodeId);
3761
3784
  break;
3762
3785
  }
3786
+ case INCOMING_EVENTS.MouseMove: {
3787
+ const { mouseX, mouseY } = payload;
3788
+ simulateComponentMove(mouseX, mouseY, '[data-ctfl-dragging-element]');
3789
+ break;
3790
+ }
3791
+ case INCOMING_EVENTS.ComponentMoveEnded: {
3792
+ const { mouseX, mouseY } = payload;
3793
+ simulateComponentMove(mouseX, mouseY, '[data-ctfl-dragging-element]', 'mouseup');
3794
+ break;
3795
+ }
3763
3796
  default:
3764
3797
  console.error(`[experiences-sdk-react::onMessage] Logic error, unsupported eventType: [${eventData.eventType}]`);
3765
3798
  }
@@ -3984,13 +4017,16 @@ const DNDProvider = ({ children }) => {
3984
4017
  const selectedNodeId = useEditorStore((state) => state.selectedNodeId);
3985
4018
  const prevSelectedNodeId = useRef(null);
3986
4019
  const isTestRun = typeof window !== 'undefined' && Object.prototype.hasOwnProperty.call(window, 'Cypress');
3987
- const dragStart = () => {
4020
+ const dragStart = ({ source }) => {
3988
4021
  prevSelectedNodeId.current = selectedNodeId;
3989
4022
  //Unselect the current node when dragging and remove the outline
3990
4023
  setSelectedNodeId('');
3991
4024
  sendMessage(OUTGOING_EVENTS.ComponentSelected, {
3992
4025
  nodeId: '',
3993
4026
  });
4027
+ if (source.droppableId !== COMPONENT_LIST_ID) {
4028
+ sendMessage(OUTGOING_EVENTS.ComponentMoveStarted);
4029
+ }
3994
4030
  };
3995
4031
  const beforeCapture = () => {
3996
4032
  setDraggingOnCanvas(true);
@@ -4028,6 +4064,7 @@ const DNDProvider = ({ children }) => {
4028
4064
  }
4029
4065
  // If a node was previously selected prior to dragging, re-select it
4030
4066
  setSelectedNodeId(dropResult.draggableId);
4067
+ sendMessage(OUTGOING_EVENTS.ComponentMoveEnded);
4031
4068
  sendMessage(OUTGOING_EVENTS.ComponentSelected, {
4032
4069
  nodeId: dropResult.draggableId,
4033
4070
  });