Skip to content

Commit 0e2eb26

Browse files
committed
Accept TouchEvent events in event handlers
1 parent b496c92 commit 0e2eb26

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/index.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const startPositions: WeakMap<ImageCropElement, {startX: number; startY: number}
1818
const dragStartPositions: WeakMap<ImageCropElement, {dragStartX: number; dragStartY: number}> = new WeakMap()
1919
const constructedElements: WeakMap<ImageCropElement, {image: HTMLImageElement; box: HTMLElement}> = new WeakMap()
2020

21-
function moveCropArea(event: MouseEvent | KeyboardEvent) {
21+
function moveCropArea(event: TouchEvent | MouseEvent | KeyboardEvent) {
2222
const el = event.currentTarget
2323
if (!(el instanceof ImageCropElement)) return
2424
const {box, image} = constructedElements.get(el) || {}
@@ -57,10 +57,17 @@ function moveCropArea(event: MouseEvent | KeyboardEvent) {
5757
dragStartX: event.pageX,
5858
dragStartY: event.pageY
5959
})
60+
} else if (event instanceof TouchEvent) {
61+
// Only support a single touch at a time
62+
const {pageX, pageY} = event.changedTouches[0]
63+
dragStartPositions.set(el, {
64+
dragStartX: pageX,
65+
dragStartY: pageY
66+
})
6067
}
6168
}
6269

63-
function updateCropArea(event: MouseEvent | KeyboardEvent) {
70+
function updateCropArea(event: TouchEvent | MouseEvent | KeyboardEvent) {
6471
const target = event.target
6572
if (!(target instanceof HTMLElement)) return
6673

@@ -89,7 +96,7 @@ function updateCropArea(event: MouseEvent | KeyboardEvent) {
8996
if (deltaX && deltaY) updateDimensions(el, deltaX, deltaY, !(event instanceof KeyboardEvent))
9097
}
9198

92-
function startUpdate(event: MouseEvent) {
99+
function startUpdate(event: TouchEvent | MouseEvent) {
93100
const currentTarget = event.currentTarget
94101
if (!(currentTarget instanceof HTMLElement)) return
95102

@@ -164,7 +171,7 @@ function setInitialPosition(el: ImageCropElement) {
164171
updateDimensions(el, side, side)
165172
}
166173

167-
function stopUpdate(event: MouseEvent) {
174+
function stopUpdate(event: TouchEvent | MouseEvent) {
168175
const el = event.currentTarget
169176
if (!(el instanceof ImageCropElement)) return
170177

0 commit comments

Comments
 (0)