From c9be5094ab419370c9e142b0713e652909846226 Mon Sep 17 00:00:00 2001 From: Katerina Patticha Date: Tue, 25 Feb 2025 13:33:51 +0200 Subject: [PATCH] trigger onPageReady only when data changes --- .../infra/public/pages/metrics/metrics_explorer/index.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/x-pack/solutions/observability/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx b/x-pack/solutions/observability/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx index 9d3469fa1b841..de29813a08b26 100644 --- a/x-pack/solutions/observability/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx +++ b/x-pack/solutions/observability/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx @@ -6,7 +6,7 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useRef } from 'react'; import { useTrackPageview, FeatureFeedbackButton } from '@kbn/observability-shared-plugin/public'; import { usePerformanceContext } from '@kbn/ebt-tools'; import { OnboardingFlow } from '../../../components/shared/templates/no_data_config'; @@ -65,7 +65,7 @@ const MetricsExplorerContent = () => { const { currentView } = useMetricsExplorerViews(); const { kibanaVersion, isCloudEnv, isServerlessEnv } = useKibanaEnvironmentContext(); - + const prevDataRef = useRef(data); const { onPageReady } = usePerformanceContext(); useTrackPageview({ app: 'infra_metrics', path: 'metrics_explorer' }); @@ -97,13 +97,15 @@ const MetricsExplorerContent = () => { }; useEffect(() => { - if (!isLoading && data) { + if (!isLoading && data && prevDataRef.current !== data) { onPageReady({ meta: { rangeFrom: timeRange.from, rangeTo: timeRange.to, }, }); + + prevDataRef.current = data; } }, [isLoading, data, timeRange.from, timeRange.to, onPageReady]);