From f3230bfb43d671d0bc8a541548a1afaa4cdb0186 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Thu, 19 Nov 2020 18:06:46 +0300 Subject: [PATCH 1/4] Use rxjs instead of jquery for eventBus. --- .../visualizations/lib/active_cursor.js | 5 ++--- .../visualizations/views/timeseries/index.js | 15 ++++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js index 427ced4dc3f2a..e65d5490d7a62 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js @@ -17,9 +17,8 @@ * under the License. */ -// TODO: Remove bus when action/triggers are available with LegacyPluginApi or metric is converted to Embeddable -import $ from 'jquery'; +import { Subject } from 'rxjs'; export const ACTIVE_CURSOR = 'ACTIVE_CURSOR'; -export const eventBus = $({}); +export const eventBus = new Subject(); diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index 36624cfeea0c2..3f85b76db8c8f 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -54,7 +54,7 @@ const generateAnnotationData = (values, formatter) => const decorateFormatter = (formatter) => ({ value }) => formatter(value); const handleCursorUpdate = (cursor) => { - eventBus.trigger(ACTIVE_CURSOR, cursor); + eventBus.next({ eventName: ACTIVE_CURSOR, cursor }); }; export const TimeSeries = ({ @@ -73,16 +73,21 @@ export const TimeSeries = ({ const chartRef = useRef(); useEffect(() => { - const updateCursor = (_, cursor) => { - if (chartRef.current) { + const updateCursor = ({ eventName, cursor }) => { + if ( + chartRef.current && + eventName === ACTIVE_CURSOR && + cursor && + chartRef.current.chartStore.getState().chartId !== cursor.chartId + ) { chartRef.current.dispatchExternalPointerEvent(cursor); } }; - eventBus.on(ACTIVE_CURSOR, updateCursor); + const subscription = eventBus.asObservable().subscribe(updateCursor); return () => { - eventBus.off(ACTIVE_CURSOR, undefined, updateCursor); + subscription.unsubscribe(); }; }, []); From 9e8cd490e207493e1e9400d786e6cac089f526dc Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Fri, 20 Nov 2020 14:34:35 +0300 Subject: [PATCH 2/4] Fix comments --- .../lib/{active_cursor.js => active_cursor.ts} | 6 +++++- .../application/visualizations/views/timeseries/index.js | 9 ++++----- 2 files changed, 9 insertions(+), 6 deletions(-) rename src/plugins/vis_type_timeseries/public/application/visualizations/lib/{active_cursor.js => active_cursor.ts} (89%) diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts similarity index 89% rename from src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js rename to src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts index e65d5490d7a62..0d5aec2c6487e 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts @@ -21,4 +21,8 @@ import { Subject } from 'rxjs'; export const ACTIVE_CURSOR = 'ACTIVE_CURSOR'; -export const eventBus = new Subject(); +interface ActiveCursor { + cursor: any; +} + +export const activeCursor$ = new Subject(); diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index 3f85b76db8c8f..b05afbb688428 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -34,7 +34,7 @@ import { } from '@elastic/charts'; import { EuiIcon } from '@elastic/eui'; import { getTimezone } from '../../../lib/get_timezone'; -import { eventBus, ACTIVE_CURSOR } from '../../lib/active_cursor'; +import { activeCursor$ } from '../../lib/active_cursor'; import { getUISettings, getChartsSetup } from '../../../../services'; import { GRID_LINE_CONFIG, ICON_TYPES_MAP, STACKED_OPTIONS } from '../../constants'; import { AreaSeriesDecorator } from './decorators/area_decorator'; @@ -54,7 +54,7 @@ const generateAnnotationData = (values, formatter) => const decorateFormatter = (formatter) => ({ value }) => formatter(value); const handleCursorUpdate = (cursor) => { - eventBus.next({ eventName: ACTIVE_CURSOR, cursor }); + activeCursor$.next({ cursor }); }; export const TimeSeries = ({ @@ -73,10 +73,9 @@ export const TimeSeries = ({ const chartRef = useRef(); useEffect(() => { - const updateCursor = ({ eventName, cursor }) => { + const updateCursor = ({ cursor }) => { if ( chartRef.current && - eventName === ACTIVE_CURSOR && cursor && chartRef.current.chartStore.getState().chartId !== cursor.chartId ) { @@ -84,7 +83,7 @@ export const TimeSeries = ({ } }; - const subscription = eventBus.asObservable().subscribe(updateCursor); + const subscription = activeCursor$.subscribe(updateCursor); return () => { subscription.unsubscribe(); From 24e66c04f61dff519e2ce68f85083a68eb038129 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Fri, 20 Nov 2020 16:53:23 +0300 Subject: [PATCH 3/4] Removed one check because property is private. --- .../application/visualizations/views/timeseries/index.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index b05afbb688428..0fd16504220ac 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -74,11 +74,7 @@ export const TimeSeries = ({ useEffect(() => { const updateCursor = ({ cursor }) => { - if ( - chartRef.current && - cursor && - chartRef.current.chartStore.getState().chartId !== cursor.chartId - ) { + if (chartRef.current && cursor) { chartRef.current.dispatchExternalPointerEvent(cursor); } }; From b26372785ebd0d1f352315d3d6b82245af4924b1 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Tue, 24 Nov 2020 13:19:18 +0300 Subject: [PATCH 4/4] Resolve comments --- .../application/visualizations/lib/active_cursor.ts | 9 ++------- .../application/visualizations/views/timeseries/index.js | 6 +++--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts index 0d5aec2c6487e..59a846aa66a07 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/lib/active_cursor.ts @@ -18,11 +18,6 @@ */ import { Subject } from 'rxjs'; +import { PointerEvent } from '@elastic/charts'; -export const ACTIVE_CURSOR = 'ACTIVE_CURSOR'; - -interface ActiveCursor { - cursor: any; -} - -export const activeCursor$ = new Subject(); +export const activeCursor$ = new Subject(); diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index 0fd16504220ac..b13d82387a707 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -54,7 +54,7 @@ const generateAnnotationData = (values, formatter) => const decorateFormatter = (formatter) => ({ value }) => formatter(value); const handleCursorUpdate = (cursor) => { - activeCursor$.next({ cursor }); + activeCursor$.next(cursor); }; export const TimeSeries = ({ @@ -73,8 +73,8 @@ export const TimeSeries = ({ const chartRef = useRef(); useEffect(() => { - const updateCursor = ({ cursor }) => { - if (chartRef.current && cursor) { + const updateCursor = (cursor) => { + if (chartRef.current) { chartRef.current.dispatchExternalPointerEvent(cursor); } };