Skip to content

Commit e199c08

Browse files
authored
feat(list): Add drag event details to calciteListDragStart and calciteListDragEnd events (#8438)
**Related Issue:** #8437 ## Summary - Adds drag event details to `calciteListDragStart` and `calciteListDragEnd` events. - Adds test
1 parent 5b44798 commit e199c08

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

packages/calcite-components/src/components/list/list.e2e.ts

+20-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { debounceTimeout } from "./resources";
66
import { CSS } from "../list-item/resources";
77
import { DEBOUNCE_TIMEOUT as FILTER_DEBOUNCE_TIMEOUT } from "../filter/resources";
88
import { GlobalTestProps, dragAndDrop, isElementFocused, getFocusedElementProp } from "../../tests/utils";
9-
import { DragDetail } from "../../utils/sortableComponent";
9+
import { ListDragDetail } from "./interfaces";
1010

1111
const placeholder = placeholderImage({
1212
width: 140,
@@ -733,6 +733,10 @@ describe("calcite-list", () => {
733733
oldIndex: number;
734734
startCalledTimes: number;
735735
endCalledTimes: number;
736+
endNewIndex: number;
737+
endOldIndex: number;
738+
startNewIndex: number;
739+
startOldIndex: number;
736740
}>;
737741

738742
it("works using a mouse", async () => {
@@ -746,16 +750,20 @@ describe("calcite-list", () => {
746750
testWindow.oldIndex = -1;
747751
testWindow.startCalledTimes = 0;
748752
testWindow.endCalledTimes = 0;
749-
list.addEventListener("calciteListOrderChange", (event: CustomEvent<DragDetail>) => {
753+
list.addEventListener("calciteListOrderChange", (event: CustomEvent<ListDragDetail>) => {
750754
testWindow.calledTimes++;
751755
testWindow.newIndex = event?.detail?.newIndex;
752756
testWindow.oldIndex = event?.detail?.oldIndex;
753757
});
754-
list.addEventListener("calciteListDragEnd", () => {
758+
list.addEventListener("calciteListDragEnd", (event: CustomEvent<ListDragDetail>) => {
755759
testWindow.endCalledTimes++;
760+
testWindow.endNewIndex = event.detail.newIndex;
761+
testWindow.endOldIndex = event.detail.oldIndex;
756762
});
757-
list.addEventListener("calciteListDragStart", () => {
763+
list.addEventListener("calciteListDragStart", (event: CustomEvent<ListDragDetail>) => {
758764
testWindow.startCalledTimes++;
765+
testWindow.startNewIndex = event.detail.newIndex;
766+
testWindow.startOldIndex = event.detail.oldIndex;
759767
});
760768
});
761769

@@ -785,6 +793,10 @@ describe("calcite-list", () => {
785793
newIndex: testWindow.newIndex,
786794
endCalledTimes: testWindow.endCalledTimes,
787795
startCalledTimes: testWindow.startCalledTimes,
796+
endNewIndex: testWindow.endNewIndex,
797+
endOldIndex: testWindow.endOldIndex,
798+
startNewIndex: testWindow.startNewIndex,
799+
startOldIndex: testWindow.startOldIndex,
788800
};
789801
});
790802

@@ -793,6 +805,10 @@ describe("calcite-list", () => {
793805
expect(results.endCalledTimes).toBe(1);
794806
expect(results.oldIndex).toBe(0);
795807
expect(results.newIndex).toBe(1);
808+
expect(results.startNewIndex).toBe(null);
809+
expect(results.startOldIndex).toBe(0);
810+
expect(results.endNewIndex).toBe(1);
811+
expect(results.endOldIndex).toBe(0);
796812
});
797813

798814
it("supports dragging items between lists", async () => {

packages/calcite-components/src/components/list/list.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -616,12 +616,12 @@ export class List
616616
this.connectObserver();
617617
}
618618

619-
onDragEnd(): void {
620-
this.calciteListDragEnd.emit();
619+
onDragEnd(detail: ListDragDetail): void {
620+
this.calciteListDragEnd.emit(detail);
621621
}
622622

623-
onDragStart(): void {
624-
this.calciteListDragStart.emit();
623+
onDragStart(detail: ListDragDetail): void {
624+
this.calciteListDragStart.emit(detail);
625625
}
626626

627627
onDragSort(detail: ListDragDetail): void {

0 commit comments

Comments
 (0)