Skip to content

Commit

Permalink
opt: optimize naming and remove duplicate logic
Browse files Browse the repository at this point in the history
  • Loading branch information
liihuu committed May 28, 2023
1 parent 4495c2b commit c040679
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 48 deletions.
20 changes: 11 additions & 9 deletions src/component/Overlay.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,15 @@ export interface OverlayPerformEventParams {
performPoint: Partial<Point>
}

export type OverlayFigureIgnoreEventType = 'mouseClickEvent' | 'mouseRightClickEvent' | 'tapEvent' | 'mouseDownEvent' | 'touchStartEvent' | 'mouseMoveEvent' | 'touchMoveEvent' | 'mouseDoubleClickEvent'
export type OverlayFigureIgnoreEventType = 'mouseClickEvent' | 'mouseRightClickEvent' | 'tapEvent' | 'doubleTapEvent' | 'mouseDownEvent' | 'touchStartEvent' | 'mouseMoveEvent' | 'touchMoveEvent' | 'mouseDoubleClickEvent'

export function getAllOverlayFigureIgnoreEventTypes (): OverlayFigureIgnoreEventType[] {
return [
'mouseClickEvent',
'mouseDoubleClickEvent',
'mouseRightClickEvent',
'tapEvent',
'doubleTapEvent',
'mouseDownEvent',
'touchStartEvent',
'mouseMoveEvent',
Expand Down Expand Up @@ -221,9 +223,9 @@ export interface Overlay {
onClick: Nullable<OverlayEventCallback>

/**
* db Click event
* Double Click event
*/
ondbClick: Nullable<OverlayEventCallback>
onDoubleClick: Nullable<OverlayEventCallback>

/**
* Right click event
Expand Down Expand Up @@ -312,7 +314,7 @@ export default abstract class OverlayImp implements Overlay {
onDrawing: Nullable<OverlayEventCallback>
onDrawEnd: Nullable<OverlayEventCallback>
onClick: Nullable<OverlayEventCallback>
ondbClick: Nullable<OverlayEventCallback>
onDoubleClick: Nullable<OverlayEventCallback>
onRightClick: Nullable<OverlayEventCallback>
onPressedMoveStart: Nullable<OverlayEventCallback>
onPressedMoving: Nullable<OverlayEventCallback>
Expand All @@ -334,7 +336,7 @@ export default abstract class OverlayImp implements Overlay {
createPointFigures, createXAxisFigures, createYAxisFigures,
performEventPressedMove, performEventMoveForDrawing,
onDrawStart, onDrawing, onDrawEnd,
onClick, ondbClick, onRightClick,
onClick, onDoubleClick, onRightClick,
onPressedMoveStart, onPressedMoving, onPressedMoveEnd,
onMouseEnter, onMouseLeave, onRemoved,
onSelected, onDeselected
Expand All @@ -359,7 +361,7 @@ export default abstract class OverlayImp implements Overlay {
this.onDrawing = onDrawing ?? null
this.onDrawEnd = onDrawEnd ?? null
this.onClick = onClick ?? null
this.ondbClick = ondbClick ?? null
this.onDoubleClick = onDoubleClick ?? null
this.onRightClick = onRightClick ?? null
this.onPressedMoveStart = onPressedMoveStart ?? null
this.onPressedMoving = onPressedMoving ?? null
Expand Down Expand Up @@ -520,9 +522,9 @@ export default abstract class OverlayImp implements Overlay {
return false
}

setOndbClickCallback (callback: Nullable<OverlayEventCallback>): boolean {
if (this.ondbClick !== callback) {
this.ondbClick = callback
setOnDoubleClickCallback (callback: Nullable<OverlayEventCallback>): boolean {
if (this.onDoubleClick !== callback) {
this.onDoubleClick = callback
return true
}
return false
Expand Down
26 changes: 3 additions & 23 deletions src/store/OverlayStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export default class OverlayStore {
const {
id, groupId, points, styles, lock, visible, zLevel, mode, extendData,
onDrawStart, onDrawing,
onDrawEnd, onClick, ondbClick, onRightClick,
onDrawEnd, onClick, onDoubleClick, onRightClick,
onPressedMoveStart, onPressedMoving, onPressedMoveEnd,
onMouseEnter, onMouseLeave,
onRemoved, onSelected, onDeselected
Expand Down Expand Up @@ -149,8 +149,8 @@ export default class OverlayStore {
if (onClick !== undefined) {
instance.setOnClickCallback(onClick)
}
if (ondbClick !== undefined) {
instance.setOndbClickCallback(ondbClick)
if (onDoubleClick !== undefined) {
instance.setOnDoubleClickCallback(onDoubleClick)
}
if (onRightClick !== undefined) {
instance.setOnRightClickCallback(onRightClick)
Expand Down Expand Up @@ -477,26 +477,6 @@ export default class OverlayStore {
}
}

setdbClickInstanceInfo (info: EventOverlayInfo, event: MouseTouchEvent): void {
const { paneId, instance, figureType, figureKey, figureIndex } = this._clickInstanceInfo
if (!(info.instance?.isDrawing() ?? false)) {
info.instance?.ondbClick?.({ overlay: info.instance, figureKey: info.figureKey, figureIndex: info.figureIndex, ...event })
}
if (instance?.id !== info.instance?.id || figureType !== info.figureType || figureIndex !== info.figureIndex) {
this._clickInstanceInfo = info
if (instance?.id !== info.instance?.id) {
instance?.onDeselected?.({ overlay: instance, figureKey, figureIndex, ...event })
info.instance?.onSelected?.({ overlay: info.instance, figureKey: info.figureKey, figureIndex: info.figureIndex, ...event })
const chart = this._chartStore.getChart()
chart.updatePane(UpdateLevel.Overlay, info.paneId)
if (paneId !== info.paneId) {
chart.updatePane(UpdateLevel.Overlay, paneId)
}
chart.updatePane(UpdateLevel.Overlay, PaneIdConstants.XAXIS)
}
}
}

getClickInstanceInfo (): EventOverlayInfo {
return this._clickInstanceInfo
}
Expand Down
23 changes: 7 additions & 16 deletions src/view/OverlayView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,6 @@ export default class OverlayView<C extends Axis = YAxis> extends View<C> {
return false
}).registerEvent('mouseDoubleClickEvent', (event: MouseTouchEvent) => {
const progressInstanceInfo = overlayStore.getProgressInstanceInfo()
// const overlay = progressInstanceInfo?.instance
// const index = overlay?.points?.length?- 1
// const key = `${OVERLAY_FIGURE_KEY_PREFIX}point_${index}`
if (progressInstanceInfo !== null) {
const overlay = progressInstanceInfo.instance
const progressInstancePaneId = progressInstanceInfo.paneId
Expand All @@ -131,10 +128,6 @@ export default class OverlayView<C extends Axis = YAxis> extends View<C> {
0
)(event)
}
overlayStore.setdbClickInstanceInfo({
paneId, instance: null, figureType: EventOverlayInfoFigureType.None, figureKey: '', figureIndex: -1, attrsIndex: -1
}, event)

return false
}).registerEvent('mouseRightClickEvent', (event: MouseTouchEvent) => {
const progressInstanceInfo = overlayStore.getProgressInstanceInfo()
Expand Down Expand Up @@ -211,7 +204,8 @@ export default class OverlayView<C extends Axis = YAxis> extends View<C> {
}
eventHandler = {}
// [
// 'mouseClickEvent', 'mouseRightClickEvent', 'tapEvent', 'mouseDownEvent',
// 'mouseClickEvent', mouseDoubleClickEvent, 'mouseRightClickEvent',
// 'tapEvent', 'doubleTapEvent', 'mouseDownEvent',
// 'touchStartEvent', 'mouseMoveEvent', 'touchMoveEvent'
// ]
if (!eventTypes.includes('mouseMoveEvent') && !eventTypes.includes('touchMoveEvent')) {
Expand All @@ -223,12 +217,12 @@ export default class OverlayView<C extends Axis = YAxis> extends View<C> {
if (!eventTypes.includes('mouseClickEvent') && !eventTypes.includes('tapEvent')) {
eventHandler.mouseClickEvent = this._figureMouseClickEvent(overlay, figureType, figureKey, figureIndex, attrsIndex)
}
if (!eventTypes.includes('mouseDoubleClickEvent') && !eventTypes.includes('doubleTapEvent')) {
eventHandler.mouseDoubleClickEvent = this._figureMousedbClickEvent(overlay, figureType, figureKey, figureIndex, attrsIndex)
}
if (!eventTypes.includes('mouseRightClickEvent')) {
eventHandler.mouseRightClickEvent = this._figureMouseRightClickEvent(overlay, figureType, figureKey, figureIndex, attrsIndex)
}
if (!eventTypes.includes('mouseDoubleClickEvent')) {
eventHandler.mouseDoubleClickEvent = this._figureMousedbClickEvent(overlay, figureType, figureKey, figureIndex, attrsIndex)
}
}
return eventHandler
}
Expand Down Expand Up @@ -266,12 +260,9 @@ export default class OverlayView<C extends Axis = YAxis> extends View<C> {
}
}

private _figureMousedbClickEvent (overlay: Overlay, figureType: EventOverlayInfoFigureType, figureKey: string, figureIndex: number, attrsIndex: number): MouseTouchEventCallback {
private _figureMousedbClickEvent (overlay: Overlay, _figureType: EventOverlayInfoFigureType, figureKey: string, figureIndex: number, _attrsIndex: number): MouseTouchEventCallback {
return (event: MouseTouchEvent) => {
const pane = this.getWidget().getPane()
const paneId = pane.getId()
const overlayStore = pane.getChart().getChartStore().getOverlayStore()
overlayStore.setdbClickInstanceInfo({ paneId, instance: overlay, figureType, figureKey, figureIndex, attrsIndex }, event)
overlay.onDoubleClick?.({ ...event, figureIndex, figureKey, overlay })
return true
}
}
Expand Down

0 comments on commit c040679

Please sign in to comment.