Skip to content
This repository was archived by the owner on May 27, 2024. It is now read-only.

Commit 60c8f04

Browse files
authored
Fix: improve event handling (#11)
* v0.0.10 * fix: Improve event handling
1 parent f599040 commit 60c8f04

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@psycle/repsycle",
3-
"version": "0.0.10-beta1",
3+
"version": "0.0.11",
44
"description": "Psycle Research front-end toolkit",
55
"author": "Psycle Research",
66
"keywords": [

src/draw-zone/index.tsx

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ export function useDraw(
209209
})),
210210
})
211211

212-
window.removeEventListener('keydown', onAbortPathDrawing)
213-
window.removeEventListener('keydown', onEnterKeyPress)
212+
window.removeEventListener('keyup', onAbortPathDrawing)
213+
window.removeEventListener('keyup', onEnterKeyPress)
214214

215215
newPoly?.fire('select')
216216

@@ -220,6 +220,8 @@ export function useDraw(
220220
function onEnterKeyPress(this: Window, event: KeyboardEvent) {
221221
if (event.defaultPrevented) return
222222
if (event.key === 'Enter') {
223+
event.preventDefault()
224+
223225
endPolyDrawing(event)
224226
}
225227
}
@@ -246,8 +248,8 @@ export function useDraw(
246248

247249
startPosition = null
248250

249-
window.removeEventListener('keydown', onAbortPathDrawing)
250-
window.removeEventListener('keydown', onEnterKeyPress)
251+
window.removeEventListener('keyup', onAbortPathDrawing)
252+
window.removeEventListener('keyup', onEnterKeyPress)
251253
}
252254
}
253255

@@ -310,11 +312,13 @@ export function useDraw(
310312
handles.length = 0
311313
circle?.remove()
312314
circle = undefined
313-
window.addEventListener('keydown', rectDelKeyPress, {
315+
window.addEventListener('keyup', rectDelKeyPress, {
314316
once: true,
317+
capture: true,
315318
})
316-
window.addEventListener('keydown', rectEscKeyPress, {
319+
window.addEventListener('keyup', rectEscKeyPress, {
317320
once: true,
321+
capture: true,
318322
})
319323

320324
circle = svg
@@ -355,8 +359,8 @@ export function useDraw(
355359
circle = undefined
356360
document.removeEventListener('dragstart', preventDrag)
357361

358-
window.removeEventListener('keydown', rectDelKeyPress)
359-
window.removeEventListener('keydown', rectEscKeyPress)
362+
window.removeEventListener('keyup', rectDelKeyPress)
363+
window.removeEventListener('keyup', rectEscKeyPress)
360364

361365
onChange()
362366
})
@@ -543,8 +547,14 @@ export function useDraw(
543547
})
544548
poly.stroke({ color: blue })
545549
poly.data('selected', true)
546-
window.addEventListener('keydown', polyDelKeyPress, { once: true })
547-
window.addEventListener('keydown', polyEscKeyPress, { once: true })
550+
window.addEventListener('keyup', polyDelKeyPress, {
551+
once: true,
552+
capture: true,
553+
})
554+
window.addEventListener('keyup', polyEscKeyPress, {
555+
once: true,
556+
capture: true,
557+
})
548558

549559
if (!disabled) {
550560
handles.forEach((h) => h.remove())
@@ -591,10 +601,11 @@ export function useDraw(
591601
.y(point.y)
592602
.data('index', i)
593603

594-
handle.on('mousedown', function mousedown(event) {
595-
event.preventDefault()
596-
event.stopPropagation()
597-
})
604+
handle
605+
.on('mousedown', function mousedown(event) {
606+
event.preventDefault()
607+
event.stopPropagation()
608+
})
598609
.css('cursor', 'grab')
599610

600611
circles.push(circle)
@@ -672,8 +683,8 @@ export function useDraw(
672683
circles.length = 0
673684
document.removeEventListener('dragstart', preventDrag)
674685

675-
window.removeEventListener('keydown', polyDelKeyPress)
676-
window.removeEventListener('keydown', polyEscKeyPress)
686+
window.removeEventListener('keyup', polyDelKeyPress)
687+
window.removeEventListener('keyup', polyEscKeyPress)
677688

678689
onChange()
679690
})
@@ -1101,8 +1112,14 @@ export function useDraw(
11011112

11021113
tmpPoints = [drawPoint(svg, startPosition.x, startPosition.y)]
11031114

1104-
window.addEventListener('keydown', onAbortPathDrawing)
1105-
window.addEventListener('keydown', onEnterKeyPress)
1115+
window.addEventListener('keyup', onAbortPathDrawing, {
1116+
once: true,
1117+
capture: true,
1118+
})
1119+
window.addEventListener('keyup', onEnterKeyPress, {
1120+
once: true,
1121+
capture: true,
1122+
})
11061123
} else if (startPosition && tmpPoly) {
11071124
const currentPosition = {
11081125
x: e.clientX - svgRect.left,
@@ -1143,8 +1160,8 @@ export function useDraw(
11431160
})),
11441161
})
11451162

1146-
window.removeEventListener('keydown', onAbortPathDrawing)
1147-
window.removeEventListener('keydown', onEnterKeyPress)
1163+
window.removeEventListener('keyup', onAbortPathDrawing)
1164+
window.removeEventListener('keyup', onEnterKeyPress)
11481165

11491166
poly?.data('selected', true)
11501167
poly?.fire('select')

0 commit comments

Comments
 (0)