Skip to content

Commit 527dcb6

Browse files
committed
Converts MirrorEvent to typescript
1 parent cc42520 commit 527dcb6

File tree

4 files changed

+59
-8
lines changed

4 files changed

+59
-8
lines changed

.changeset/warm-jars-tickle.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+
Converts MirrorEvent to typescript

src/Draggable/DragEvent/DragEvent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {FixMeAny} from 'shared/types';
55
* DragEventData
66
* @interface DragEventData
77
*/
8-
interface DragEventData {
8+
export interface DragEventData {
99
source: HTMLElement;
1010
originalSource: HTMLElement;
1111
mirror: HTMLElement;

src/Draggable/Plugins/Mirror/MirrorEvent/MirrorEvent.js renamed to src/Draggable/Plugins/Mirror/MirrorEvent/MirrorEvent.ts

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
import AbstractEvent from 'shared/AbstractEvent';
2+
import {FixMeAny} from 'shared/types';
3+
4+
import {DragEvent, DragEventData} from '../../../DragEvent';
5+
6+
interface MirrorEventData {
7+
source: HTMLElement;
8+
originalSource: HTMLElement;
9+
sourceContainer: HTMLElement;
10+
sensorEvent: FixMeAny;
11+
dragEvent: DragEvent<DragEventData>;
12+
}
213

314
/**
415
* Base mirror event
516
* @class MirrorEvent
617
* @module MirrorEvent
718
* @extends AbstractEvent
819
*/
9-
export class MirrorEvent extends AbstractEvent {
20+
export class MirrorEvent<
21+
T extends MirrorEventData,
22+
> extends AbstractEvent<MirrorEventData> {
23+
/**
24+
* MirrorEvent constructor.
25+
* @constructs MirrorEvent
26+
* @param {MirrorEventData} data - Event data
27+
*/
28+
constructor(public data: T) {
29+
super(data);
30+
}
31+
1032
/**
1133
* Draggables source element
1234
* @property source
@@ -78,17 +100,21 @@ export class MirrorEvent extends AbstractEvent {
78100
* @module MirrorCreateEvent
79101
* @extends MirrorEvent
80102
*/
81-
export class MirrorCreateEvent extends MirrorEvent {
103+
export class MirrorCreateEvent extends MirrorEvent<MirrorEventData> {
82104
static type = 'mirror:create';
83105
}
84106

107+
interface MirrorCreatedEventData extends MirrorEventData {
108+
mirror: HTMLElement;
109+
}
110+
85111
/**
86112
* Mirror created event
87113
* @class MirrorCreatedEvent
88114
* @module MirrorCreatedEvent
89115
* @extends MirrorEvent
90116
*/
91-
export class MirrorCreatedEvent extends MirrorEvent {
117+
export class MirrorCreatedEvent extends MirrorEvent<MirrorCreatedEventData> {
92118
static type = 'mirror:created';
93119

94120
/**
@@ -102,13 +128,17 @@ export class MirrorCreatedEvent extends MirrorEvent {
102128
}
103129
}
104130

131+
interface MirrorAttachedEventData extends MirrorEventData {
132+
mirror: HTMLElement;
133+
}
134+
105135
/**
106136
* Mirror attached event
107137
* @class MirrorAttachedEvent
108138
* @module MirrorAttachedEvent
109139
* @extends MirrorEvent
110140
*/
111-
export class MirrorAttachedEvent extends MirrorEvent {
141+
export class MirrorAttachedEvent extends MirrorEvent<MirrorAttachedEventData> {
112142
static type = 'mirror:attached';
113143

114144
/**
@@ -122,13 +152,19 @@ export class MirrorAttachedEvent extends MirrorEvent {
122152
}
123153
}
124154

155+
interface MirrorMoveEventData extends MirrorEventData {
156+
mirror: HTMLElement;
157+
passedThreshX: boolean;
158+
passedThreshY: boolean;
159+
}
160+
125161
/**
126162
* Mirror move event
127163
* @class MirrorMoveEvent
128164
* @module MirrorMoveEvent
129165
* @extends MirrorEvent
130166
*/
131-
export class MirrorMoveEvent extends MirrorEvent {
167+
export class MirrorMoveEvent extends MirrorEvent<MirrorMoveEventData> {
132168
static type = 'mirror:move';
133169
static cancelable = true;
134170

@@ -161,13 +197,19 @@ export class MirrorMoveEvent extends MirrorEvent {
161197
}
162198
}
163199

200+
interface MirrorMovedEventData extends MirrorEventData {
201+
mirror: HTMLElement;
202+
passedThreshX: boolean;
203+
passedThreshY: boolean;
204+
}
205+
164206
/**
165207
* Mirror moved event
166208
* @class MirrorMovedEvent
167209
* @module MirrorMovedEvent
168210
* @extends MirrorEvent
169211
*/
170-
export class MirrorMovedEvent extends MirrorEvent {
212+
export class MirrorMovedEvent extends MirrorEvent<MirrorMovedEventData> {
171213
static type = 'mirror:moved';
172214

173215
/**
@@ -199,13 +241,17 @@ export class MirrorMovedEvent extends MirrorEvent {
199241
}
200242
}
201243

244+
interface MirrorDestroyEventData extends MirrorEventData {
245+
mirror: HTMLElement;
246+
}
247+
202248
/**
203249
* Mirror destroy event
204250
* @class MirrorDestroyEvent
205251
* @module MirrorDestroyEvent
206252
* @extends MirrorEvent
207253
*/
208-
export class MirrorDestroyEvent extends MirrorEvent {
254+
export class MirrorDestroyEvent extends MirrorEvent<MirrorDestroyEventData> {
209255
static type = 'mirror:destroy';
210256
static cancelable = true;
211257

0 commit comments

Comments
 (0)