Skip to content

Commit 8d15962

Browse files
authored
fix: onClick callback does not handle dblclick (#9629)
1 parent 58c9097 commit 8d15962

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

modules/core/src/lib/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export const UNIT = {
8888

8989
export const EVENT_HANDLERS = {
9090
click: 'onClick',
91+
dblclick: 'onClick',
9192
panstart: 'onDragStart',
9293
panmove: 'onDrag',
9394
panend: 'onDragEnd'

test/modules/core/lib/widget-manager.spec.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -356,17 +356,18 @@ test('WidgetManager#onHover, onEvent#without viewId', t => {
356356
widget.onHover = () => onHoverCalledCount++;
357357
widget.onClick = () => onClickCalledCount++;
358358

359-
// Trigger onHover event
359+
// Given the pickedInfo, test that widgetManager does forward events to test widget
360+
// Trigger hover event leading to onHover callback
360361
widgetManager.onHover(pickedInfo, {});
361-
// Trigger onClick event
362+
// Trigger click event leading to onClick callback
362363
widgetManager.onEvent(pickedInfo, {type: 'click'});
363-
// Trigger onDragStart event
364+
// Trigger panstart event leading to onDragStart callback
364365
widgetManager.onEvent(pickedInfo, {type: 'panstart'});
365-
// Event not defined
366+
// Trigger dblclick event leading to onClick callback
366367
widgetManager.onEvent(pickedInfo, {type: 'dblclick'});
367368

368369
t.is(onHoverCalledCount, 1, 'widget.onHover is called');
369-
t.is(onClickCalledCount, 1, 'widget.onClick is called');
370+
t.is(onClickCalledCount, 2, 'widget.onClick is called');
370371

371372
widgetManager.finalize();
372373
t.end();
@@ -389,30 +390,32 @@ test('WidgetManager#onHover, onEvent#viewId', t => {
389390
widget.onHover = () => onHoverCalledCount++;
390391
widget.onClick = () => onClickCalledCount++;
391392

392-
// Trigger onHover event
393+
// Given the pickedInfo, test that widgetManager does forward events to test widget
394+
// Trigger hover event leading to onHover callback
393395
widgetManager.onHover(pickedInfo, {});
394-
// Trigger onClick event
396+
// Trigger click event leading to onClick callback
395397
widgetManager.onEvent(pickedInfo, {type: 'click'});
396-
// Trigger onDragStart event
398+
// Trigger panstart event leading to onDragStart callback
397399
widgetManager.onEvent(pickedInfo, {type: 'panstart'});
398-
// Event not defined
400+
// Trigger dblclick event leading to onClick callback
399401
widgetManager.onEvent(pickedInfo, {type: 'dblclick'});
400402

401403
t.is(onHoverCalledCount, 1, 'widget.onHover is called');
402-
t.is(onClickCalledCount, 1, 'widget.onClick is called');
404+
t.is(onClickCalledCount, 2, 'widget.onClick is called');
403405

404406
pickedInfo = {
405407
viewport: new WebMercatorViewport({id: 'minimap'}),
406408
index: 0
407409
};
408410

409-
// Trigger onHover event
411+
// Given the updated pickedInfo, test that widgetManager does *not* forward events to test widget
412+
// Trigger hover event not leading to onHover callback
410413
widgetManager.onHover(pickedInfo, {});
411-
// Trigger onClick event
414+
// Trigger click event not leading to onClick callback
412415
widgetManager.onEvent(pickedInfo, {type: 'click'});
413416

414417
t.is(onHoverCalledCount, 1, 'widget.onHover is not called');
415-
t.is(onClickCalledCount, 1, 'widget.onClick is not called');
418+
t.is(onClickCalledCount, 2, 'widget.onClick is not called');
416419

417420
widgetManager.finalize();
418421
t.end();

0 commit comments

Comments
 (0)