Skip to content

Commit 281f58c

Browse files
authored
fix(ourlogs): Fix multiple metadata firing (#97524)
### Summary Autorefresh state was interfering with the hook
1 parent 037b029 commit 281f58c

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

static/app/views/explore/hooks/useAnalytics.tsx

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {useEffect} from 'react';
1+
import {useEffect, useRef} from 'react';
22
import * as Sentry from '@sentry/react';
33

44
import {defined} from 'sentry/utils';
@@ -416,9 +416,30 @@ export function useLogAnalytics({
416416
const tableError = logsTableResult.error?.message ?? '';
417417
const query_status = tableError ? 'error' : 'success';
418418
const autorefreshEnabled = useLogsAutoRefreshEnabled();
419+
const autorefreshBox = useRef(autorefreshEnabled); // Boxed to avoid useEffect firing analytics on changes.
420+
const resultLengthBox = useRef(logsTableResult.data?.length || 0); // Boxed to avoid useEffect firing analytics on changes.
421+
const isDisablingAutorefresh = useRef(false);
422+
423+
autorefreshBox.current = autorefreshEnabled;
424+
resultLengthBox.current = logsTableResult.data?.length || 0;
419425

420426
useEffect(() => {
421-
if (logsTableResult.isPending || isLoadingSubscriptionDetails || autorefreshEnabled) {
427+
if (!autorefreshEnabled) {
428+
isDisablingAutorefresh.current = true;
429+
}
430+
}, [autorefreshEnabled]);
431+
432+
useEffect(() => {
433+
if (isDisablingAutorefresh.current) {
434+
isDisablingAutorefresh.current = false;
435+
return;
436+
}
437+
438+
if (
439+
logsTableResult.isPending ||
440+
isLoadingSubscriptionDetails ||
441+
autorefreshBox.current
442+
) {
422443
// Auto-refresh causes constant metadata events, so we don't want to track them.
423444
return;
424445
}
@@ -430,7 +451,7 @@ export function useLogAnalytics({
430451
columns,
431452
columns_count: columns.length,
432453
query_status,
433-
table_result_length: logsTableResult.data?.length || 0,
454+
table_result_length: resultLengthBox.current,
434455
table_result_missing_root: 0,
435456
user_queries: search.formatString(),
436457
user_queries_count: search.tokens.length,
@@ -445,7 +466,7 @@ export function useLogAnalytics({
445466
query: ${query}
446467
fields: ${fields}
447468
query_status: ${query_status}
448-
result_length: ${String(logsTableResult.data?.length || 0)}
469+
result_length: ${String(resultLengthBox.current)}
449470
user_queries: ${search.formatString()}
450471
user_queries_count: ${String(search.tokens.length)}
451472
has_exceeded_performance_usage_limit: ${String(hasExceededPerformanceUsageLimit)}
@@ -463,9 +484,7 @@ export function useLogAnalytics({
463484
query_status,
464485
page_source,
465486
logsTableResult.isPending,
466-
logsTableResult.data?.length,
467487
search,
468-
autorefreshEnabled,
469488
]);
470489
}
471490

0 commit comments

Comments
 (0)