Skip to content

Commit 902ce6c

Browse files
Fix case sensitivity issue with dragDropKey in onDrop function (adazzle#3589)
* convert `dragDropKey` value to lowercase * added comments in the onDrop callback * added spec
1 parent 4573a58 commit 902ce6c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/HeaderCell.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,12 @@ export default function HeaderCell<R, SR>({
224224

225225
function onDrop(event: React.DragEvent<HTMLDivElement>) {
226226
setIsOver(false);
227-
if (event.dataTransfer.types.includes(dragDropKey)) {
228-
const sourceKey = event.dataTransfer.getData(dragDropKey);
227+
// The dragDropKey is derived from the useId() hook, which can sometimes generate keys with uppercase letters.
228+
// When setting data using event.dataTransfer.setData(), the key is automatically converted to lowercase in some browsers.
229+
// To ensure consistent comparison, we normalize the dragDropKey to lowercase before checking its presence in the event's dataTransfer types.
230+
// https://html.spec.whatwg.org/multipage/dnd.html#the-datatransfer-interface
231+
if (event.dataTransfer.types.includes(dragDropKey.toLowerCase())) {
232+
const sourceKey = event.dataTransfer.getData(dragDropKey.toLowerCase());
229233
if (sourceKey !== column.key) {
230234
event.preventDefault();
231235
onColumnsReorder?.(sourceKey, column.key);

0 commit comments

Comments
 (0)