Skip to content

Commit 68fefd6

Browse files
pdanpdanrstoenescu
authored andcommitted
Extract prevent to utils/event (quasarframework#1307)
* Extract prevent to utils/event * Rename prevent to stopAndPrevent
1 parent 39fd86b commit 68fefd6

File tree

10 files changed

+37
-47
lines changed

10 files changed

+37
-47
lines changed

src/components/autocomplete/QAutocomplete.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
import { width } from '../../utils/dom'
2+
import { stopAndPrevent } from '../../utils/event'
23
import filter from '../../utils/filter'
34
import uid from '../../utils/uid'
45
import { normalizeToInterval } from '../../utils/format'
56
import { QPopover } from '../popover'
67
import { QList, QItemWrapper } from '../list'
78

8-
function prevent (e) {
9-
e.preventDefault()
10-
e.stopPropagation()
11-
}
12-
139
export default {
1410
name: 'q-autocomplete',
1511
props: {
@@ -189,15 +185,15 @@ export default {
189185
break
190186
case 13: // enter
191187
this.setCurrentSelection()
192-
prevent(e)
188+
stopAndPrevent(e)
193189
break
194190
case 27: // escape
195191
this.__clearSearch()
196192
break
197193
}
198194
},
199195
__moveCursor (offset, e) {
200-
prevent(e)
196+
stopAndPrevent(e)
201197

202198
if (!this.$refs.popover.showing) {
203199
this.trigger()

src/components/color-picker/QSaturationValuePicker.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
</template>
1616

1717
<script>
18+
import { stopAndPrevent } from '../../utils/event'
1819
import throttle from '../../utils/throttle'
1920
import TouchPan from '../../directives/touch-pan'
2021
@@ -79,8 +80,7 @@ export default {
7980
if (!this.editable) {
8081
return
8182
}
82-
event.evt.stopPropagation()
83-
event.evt.preventDefault()
83+
stopAndPrevent(event.evt)
8484
8585
this.dragging = true
8686
this.__input(event)
@@ -89,17 +89,15 @@ export default {
8989
if (!this.dragging || !this.editable) {
9090
return
9191
}
92-
event.evt.stopPropagation()
93-
event.evt.preventDefault()
92+
stopAndPrevent(event.evt)
9493
9594
this.__input(event)
9695
},
9796
__dragStop (event) {
9897
if (!this.editable) {
9998
return
10099
}
101-
event.evt.stopPropagation()
102-
event.evt.preventDefault()
100+
stopAndPrevent(event.evt)
103101
this.dragging = false
104102
},
105103
__calcSaturationAndValueFromPositionInContainer ({ x, y }) {

src/components/color/QColor.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { QBtn } from '../btn'
22
import { QSlider } from '../slider'
33
import TouchPan from '../../directives/touch-pan'
4+
import { stopAndPrevent } from '../../utils/event'
45
import throttle from '../../utils/throttle'
56
import getColor from './get-color'
67

@@ -267,8 +268,7 @@ export default {
267268
}
268269
},
269270
__dragStart (event) {
270-
event.evt.stopPropagation()
271-
event.evt.preventDefault()
271+
stopAndPrevent(event.evt)
272272

273273
this.saturationDragging = true
274274
this.__saturationChange(event)
@@ -277,14 +277,12 @@ export default {
277277
if (!this.saturationDragging) {
278278
return
279279
}
280-
event.evt.stopPropagation()
281-
event.evt.preventDefault()
280+
stopAndPrevent(event.evt)
282281

283282
this.__saturationChange(event)
284283
},
285284
__dragStop (event) {
286-
event.evt.stopPropagation()
287-
event.evt.preventDefault()
285+
stopAndPrevent(event.evt)
288286
this.saturationDragging = false
289287
},
290288
__saturationChange (evt) {

src/components/context-menu/ContextMenuDesktop.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { stopAndPrevent } from '../../utils/event'
12
import { QPopover } from '../popover'
23

34
export default {
@@ -29,8 +30,7 @@ export default {
2930
return
3031
}
3132
this.hide()
32-
evt.preventDefault()
33-
evt.stopPropagation()
33+
stopAndPrevent(evt)
3434
/*
3535
Opening with a timeout for
3636
Firefox workaround

src/components/context-menu/ContextMenuMobile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { stopAndPrevent } from '../../utils/event'
12
import { QModal } from '../modal'
23

34
export default {
@@ -18,8 +19,7 @@ export default {
1819
__touchStartHandler (evt) {
1920
this.target.classList.add('non-selectable')
2021
this.touchTimer = setTimeout(() => {
21-
evt.preventDefault()
22-
evt.stopPropagation()
22+
stopAndPrevent(evt)
2323
setTimeout(() => {
2424
this.__cleanup()
2525
this.__show()

src/components/datetime/QInlineDatetime.ios.vue

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191

9292
<script>
9393
import { between, capitalize } from '../../utils/format'
94-
import { position } from '../../utils/event'
94+
import { position, stopAndPrevent } from '../../utils/event'
9595
import { css } from '../../utils/dom'
9696
import { isSameDate, adjustDate } from '../../utils/date'
9797
import DateMixin from './datetime-mixin'
@@ -283,8 +283,7 @@ export default {
283283
return
284284
}
285285
286-
ev.stopPropagation()
287-
ev.preventDefault()
286+
stopAndPrevent(ev)
288287
289288
this[type + 'DragOffset'] = 0
290289
this.dragging = type
@@ -297,8 +296,7 @@ export default {
297296
return
298297
}
299298
300-
ev.stopPropagation()
301-
ev.preventDefault()
299+
stopAndPrevent(ev)
302300
303301
const offset = (this.__dragPosition - position(ev).top) / 36
304302
this[type + 'DragOffset'] = offset
@@ -308,8 +306,7 @@ export default {
308306
if (this.dragging !== type || !this.editable) {
309307
return
310308
}
311-
ev.stopPropagation()
312-
ev.preventDefault()
309+
stopAndPrevent(ev)
313310
this.dragging = false
314311
315312
let

src/components/datetime/QInlineDatetime.mat.vue

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233

234234
<script>
235235
import { height, width, offset, cssTransform } from '../../utils/dom'
236-
import { position } from '../../utils/event'
236+
import { position, stopAndPrevent } from '../../utils/event'
237237
import { QBtn } from '../btn'
238238
import { isSameDate, adjustDate } from '../../utils/date'
239239
import DateMixin from './datetime-mixin'
@@ -445,8 +445,7 @@ export default {
445445
return (unit < 10 ? filler || '0' : '') + unit
446446
},
447447
__dragStart (ev) {
448-
ev.stopPropagation()
449-
ev.preventDefault()
448+
stopAndPrevent(ev)
450449
451450
let
452451
clock = this.$refs.clock,
@@ -464,13 +463,11 @@ export default {
464463
if (!this.dragging) {
465464
return
466465
}
467-
ev.stopPropagation()
468-
ev.preventDefault()
466+
stopAndPrevent(ev)
469467
this.__updateClock(ev)
470468
},
471469
__dragStop (ev) {
472-
ev.stopPropagation()
473-
ev.preventDefault()
470+
stopAndPrevent(ev)
474471
this.dragging = false
475472
this.view = 'minute'
476473
},

src/components/editor/QEditor.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getEventKey } from '../../utils/event'
1+
import { getEventKey, stopAndPrevent } from '../../utils/event'
22
import { getToolbar, getFonts } from './editor-utils'
33
import { Caret } from './editor-caret'
44
import extend from '../../utils/extend'
@@ -217,8 +217,7 @@ export default {
217217
const target = this.keys[key]
218218
if (target !== void 0) {
219219
const { cmd, param } = target
220-
e.preventDefault()
221-
e.stopPropagation()
220+
stopAndPrevent(e)
222221
this.runCmd(cmd, param, false)
223222
}
224223
},

src/components/knob/QKnob.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { position } from '../../utils/event'
1+
import { position, stopAndPrevent } from '../../utils/event'
22
import { between } from '../../utils/format'
33
import { offset, height, width } from '../../utils/dom'
44
import TouchPan from '../../directives/touch-pan'
@@ -106,8 +106,7 @@ export default {
106106
if (!this.editable) {
107107
return
108108
}
109-
ev.stopPropagation()
110-
ev.preventDefault()
109+
stopAndPrevent(ev)
111110

112111
this.centerPosition = this.__getCenter()
113112

@@ -118,16 +117,14 @@ export default {
118117
if (!this.dragging || !this.editable) {
119118
return
120119
}
121-
ev.stopPropagation()
122-
ev.preventDefault()
120+
stopAndPrevent(ev)
123121
this.__onInput(ev, this.centerPosition)
124122
},
125123
__dragStop (ev) {
126124
if (!this.editable) {
127125
return
128126
}
129-
ev.stopPropagation()
130-
ev.preventDefault()
127+
stopAndPrevent(ev)
131128
this.dragging = false
132129
this.__onInput(ev, this.centerPosition, true)
133130
},

src/utils/event.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,11 @@ export function getMouseWheelDistance (e) {
127127
pixelY: pY
128128
}
129129
}
130+
131+
export function stopAndPrevent (e) {
132+
if (!e) {
133+
return
134+
}
135+
e.preventDefault()
136+
e.stopPropagation()
137+
}

0 commit comments

Comments
 (0)