Skip to content

Commit 0f67c2a

Browse files
fixes regression in drop-or-swap plugin
1 parent e98858d commit 0f67c2a

File tree

8 files changed

+57
-30
lines changed

8 files changed

+57
-30
lines changed

dist/index.cjs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -979,9 +979,10 @@ function updateDraggedOverNodes(data, state2) {
979979
);
980980
state2.currentTargetValue = targetData.node.data.value;
981981
state2.currentParent = targetData.parent;
982-
addParentClass(
983-
[state2.currentParent.el],
982+
addClass(
983+
state2.currentParent.el,
984984
isSynthDragState(state2) ? config.synthDropZoneParentClass : config.dropZoneParentClass,
985+
state2.currentParent.data,
985986
true
986987
);
987988
}
@@ -1000,7 +1001,12 @@ function handleParentDragover2(data, state2) {
10001001
);
10011002
removeClass([state2.currentParent.el], currentConfig.dropZoneParentClass);
10021003
const config = data.targetData.parent.data.config;
1003-
addParentClass([data.targetData.parent.el], config.dropZoneParentClass, true);
1004+
addClass(
1005+
data.targetData.parent.el,
1006+
config.dropZoneParentClass,
1007+
data.targetData.parent.data,
1008+
true
1009+
);
10041010
dropSwapState.draggedOverNodes = [];
10051011
state2.currentParent = data.targetData.parent;
10061012
}
@@ -1015,9 +1021,10 @@ function handeParentPointerover(data) {
10151021
currentConfig.synthDropZoneParentClass
10161022
);
10171023
const config = data.detail.targetData.parent.data.config;
1018-
addParentClass(
1019-
[data.detail.targetData.parent.el],
1024+
addClass(
1025+
data.detail.targetData.parent.el,
10201026
config.synthDropZoneParentClass,
1027+
data.detail.targetData.parent.data,
10211028
true
10221029
);
10231030
dropSwapState.draggedOverNodes = [];

dist/index.cjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.mjs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -889,9 +889,10 @@ function updateDraggedOverNodes(data, state2) {
889889
);
890890
state2.currentTargetValue = targetData.node.data.value;
891891
state2.currentParent = targetData.parent;
892-
addParentClass(
893-
[state2.currentParent.el],
892+
addClass(
893+
state2.currentParent.el,
894894
isSynthDragState(state2) ? config.synthDropZoneParentClass : config.dropZoneParentClass,
895+
state2.currentParent.data,
895896
true
896897
);
897898
}
@@ -910,7 +911,12 @@ function handleParentDragover2(data, state2) {
910911
);
911912
removeClass([state2.currentParent.el], currentConfig.dropZoneParentClass);
912913
const config = data.targetData.parent.data.config;
913-
addParentClass([data.targetData.parent.el], config.dropZoneParentClass, true);
914+
addClass(
915+
data.targetData.parent.el,
916+
config.dropZoneParentClass,
917+
data.targetData.parent.data,
918+
true
919+
);
914920
dropSwapState.draggedOverNodes = [];
915921
state2.currentParent = data.targetData.parent;
916922
}
@@ -925,9 +931,10 @@ function handeParentPointerover(data) {
925931
currentConfig.synthDropZoneParentClass
926932
);
927933
const config = data.detail.targetData.parent.data.config;
928-
addParentClass(
929-
[data.detail.targetData.parent.el],
934+
addClass(
935+
data.detail.targetData.parent.el,
930936
config.synthDropZoneParentClass,
937+
data.detail.targetData.parent.data,
931938
true
932939
);
933940
dropSwapState.draggedOverNodes = [];

dist/index.mjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

playwright/utils.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ export async function syntheticDrag(
182182
})
183183
);
184184

185+
destinationElement.dispatchEvent(
186+
new PointerEvent("pointerover", {
187+
pointerId: 1,
188+
...destProps,
189+
})
190+
);
191+
185192
await new Promise((resolve) => setTimeout(resolve, 100));
186193

187194
// Additional move at destination to ensure hover state

src/index.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2784,28 +2784,27 @@ export function addClass(
27842784

27852785
if (!classNames.length) return;
27862786

2787-
if (classNames.includes("longPress")) return;
2788-
27892787
if (!data) {
27902788
el.classList.add(...classNames);
27912789
return;
27922790
}
2791+
// Revert to original logic: Initialize privateClasses as empty for this call.
2792+
const privateClasses = [];
27932793

2794-
const privateClasses = [...(data.privateClasses || [])];
2795-
2796-
for (const className of classNames) {
2797-
if (!el.classList.contains(className)) {
2798-
el.classList.add(className);
2794+
for (const currentClassName of classNames) {
2795+
if (!el.classList.contains(currentClassName)) {
2796+
el.classList.add(currentClassName);
27992797
} else if (
2800-
el.classList.contains(className) &&
2798+
// Only add to privateClasses if the element already had the class
2799+
// AND omitAppendPrivateClass is specifically false for THIS call.
2800+
el.classList.contains(currentClassName) &&
28012801
omitAppendPrivateClass === false
28022802
) {
2803-
privateClasses.push(className);
2803+
privateClasses.push(currentClassName);
28042804
}
28052805
}
2806-
2806+
// Assign the newly computed privateClasses, overwriting any previous value.
28072807
data.privateClasses = privateClasses;
2808-
28092808
return data;
28102809
}
28112810

src/plugins/drop-or-swap/index.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import {
1818
addNodeClass,
1919
isSynthDragState,
2020
removeClass,
21+
addClass,
2122
state,
2223
addEvents,
2324
isDragState,
24-
addParentClass,
2525
} from "../../index";
2626

2727
export const dropSwapState: DropSwapState<unknown> = {
@@ -147,11 +147,12 @@ function updateDraggedOverNodes<T>(
147147

148148
state.currentParent = targetData.parent;
149149

150-
addParentClass(
151-
[state.currentParent.el],
150+
addClass(
151+
state.currentParent.el,
152152
isSynthDragState(state)
153153
? config.synthDropZoneParentClass
154154
: config.dropZoneParentClass,
155+
state.currentParent.data,
155156
true
156157
);
157158
}
@@ -186,7 +187,12 @@ export function handleParentDragover<T>(
186187

187188
const config = data.targetData.parent.data.config;
188189

189-
addParentClass([data.targetData.parent.el], config.dropZoneParentClass, true);
190+
addClass(
191+
data.targetData.parent.el,
192+
config.dropZoneParentClass,
193+
data.targetData.parent.data,
194+
true
195+
);
190196

191197
dropSwapState.draggedOverNodes = [];
192198

@@ -208,9 +214,10 @@ export function handeParentPointerover<T>(data: PointeroverParentEvent<T>) {
208214

209215
const config = data.detail.targetData.parent.data.config;
210216

211-
addParentClass(
212-
[data.detail.targetData.parent.el],
217+
addClass(
218+
data.detail.targetData.parent.el,
213219
config.synthDropZoneParentClass,
220+
data.detail.targetData.parent.data,
214221
true
215222
);
216223

tests/.nuxt/nuxt.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Generated by nuxi
2+
/// <reference types="@nuxt/telemetry" />
23
/// <reference types="@nuxtjs/tailwindcss" />
34
/// <reference types="@nuxt/devtools" />
4-
/// <reference types="@nuxt/telemetry" />
55
/// <reference path="types/builder-env.d.ts" />
66
/// <reference types="nuxt" />
77
/// <reference path="types/app-defaults.d.ts" />

0 commit comments

Comments
 (0)