Skip to content

Commit bb23ff2

Browse files
committed
Convert CollidableEvent to typescript
1 parent 9154a96 commit bb23ff2

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

.changeset/calm-kangaroos-jump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/draggable': patch
3+
---
4+
5+
Convert CollidableEvent to typescript

src/Plugins/Collidable/CollidableEvent/CollidableEvent.js renamed to src/Plugins/Collidable/CollidableEvent/CollidableEvent.ts

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
import AbstractEvent from 'shared/AbstractEvent';
22

3+
import {DragEvent, DragEventData} from '../../../Draggable/DragEvent';
4+
5+
interface CollidableEventData {
6+
dragEvent: DragEvent<DragEventData>;
7+
}
8+
39
/**
410
* Base collidable event
511
* @class CollidableEvent
612
* @module CollidableEvent
713
* @extends AbstractEvent
814
*/
9-
export class CollidableEvent extends AbstractEvent {
15+
export class CollidableEvent<
16+
T extends CollidableEventData,
17+
> extends AbstractEvent<CollidableEventData> {
1018
static type = 'collidable';
1119

20+
/**
21+
* CollidableEvent constructor.
22+
* @constructs CollidableEvent
23+
* @param {CollidableEventData} data - Event data
24+
*/
25+
constructor(public data: T) {
26+
super(data);
27+
}
28+
1229
/**
1330
* Drag event that triggered this colliable event
1431
* @property dragEvent
@@ -20,13 +37,17 @@ export class CollidableEvent extends AbstractEvent {
2037
}
2138
}
2239

40+
interface CollidableInEventData extends CollidableEventData {
41+
collidingElement: HTMLElement;
42+
}
43+
2344
/**
2445
* Collidable in event
2546
* @class CollidableInEvent
2647
* @module CollidableInEvent
2748
* @extends CollidableEvent
2849
*/
29-
export class CollidableInEvent extends CollidableEvent {
50+
export class CollidableInEvent extends CollidableEvent<CollidableInEventData> {
3051
static type = 'collidable:in';
3152

3253
/**
@@ -40,13 +61,17 @@ export class CollidableInEvent extends CollidableEvent {
4061
}
4162
}
4263

64+
interface CollidableOutEventData extends CollidableEventData {
65+
collidingElement: HTMLElement;
66+
}
67+
4368
/**
4469
* Collidable out event
4570
* @class CollidableOutEvent
4671
* @module CollidableOutEvent
4772
* @extends CollidableEvent
4873
*/
49-
export class CollidableOutEvent extends CollidableEvent {
74+
export class CollidableOutEvent extends CollidableEvent<CollidableOutEventData> {
5075
static type = 'collidable:out';
5176

5277
/**

0 commit comments

Comments
 (0)