MCPcopy Create free account
hub / github.com/UI5/webcomponents / handleDragOver

Function handleDragOver

packages/base/src/util/dragAndDrop/handleDragOver.ts:19–61  ·  view source on GitHub ↗

* Handles the dragover event.

(e: DragEvent, component: T, position: DragPosition, target: HTMLElement, settings: DragAndDropSettings = {})

Source from the content-addressed store, hash-verified

17 * Handles the dragover event.
18 */
19function handleDragOver<T extends UI5Element>(e: DragEvent, component: T, position: DragPosition, target: HTMLElement, settings: DragAndDropSettings = {}): DragOverResult {
20 const draggedElement = DragRegistry.getDraggedElement();
21 const dragOverResult: DragOverResult = {
22 targetReference: null,
23 placement: null,
24 };
25
26 if (!draggedElement && !settings?.crossDnD) {
27 return dragOverResult;
28 }
29
30 const placements = position.placements;
31 dragOverResult.targetReference = e.target as HTMLElement;
32
33 const placementAccepted = placements.some(placement => {
34 const originalEvent = settings.originalEvent ? { originalEvent: e } : {};
35 const beforeItemMovePrevented = !component.fireDecoratorEvent("move-over" as keyof T["eventDetails"], {
36 ...originalEvent,
37 source: {
38 element: draggedElement,
39 },
40 destination: {
41 element: target,
42 placement,
43 },
44 } as T["eventDetails"][keyof T["eventDetails"]]);
45
46 if (beforeItemMovePrevented) {
47 e.preventDefault();
48 dragOverResult.targetReference = position.element;
49 dragOverResult.placement = placement;
50 return true;
51 }
52
53 return false;
54 });
55
56 if (!placementAccepted) {
57 dragOverResult.targetReference = null;
58 }
59
60 return dragOverResult;
61}
62
63export default handleDragOver;

Callers 3

_onHeaderDragOverMethod · 0.85
_ondragoverMethod · 0.85
ondragoverMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…