Skip to content

Commit 9910f62

Browse files
authored
feat(explore): Add loading indicator to multi query mode (#89783)
Drop the `isProgressivelyLoading` prop for now and apply the new loading UI for multi query mode chart footers similarly to #89774 It just passes along all the info that the old confidence footer had and also passes a `dataScanned` prop for the final message for users that have sampled storage
1 parent bc52644 commit 9910f62

File tree

2 files changed

+25
-15
lines changed

2 files changed

+25
-15
lines changed

static/app/views/explore/multiQueryMode/queryRow.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {LazyRender} from 'sentry/components/lazyRender';
66
import {IconDelete} from 'sentry/icons/iconDelete';
77
import {t} from 'sentry/locale';
88
import {space} from 'sentry/styles/space';
9-
import {defined} from 'sentry/utils';
109
import useOrganization from 'sentry/utils/useOrganization';
1110
import {Mode} from 'sentry/views/explore/contexts/pageParamsContext/mode';
1211
import {useCompareAnalytics} from 'sentry/views/explore/hooks/useAnalytics';
@@ -114,11 +113,7 @@ export function QueryRow({query: queryParts, index, totalQueryRows}: Props) {
114113
query={queryParts}
115114
timeseriesResult={timeseriesResult}
116115
canUsePreviousResults={canUsePreviousResults}
117-
isProgressivelyLoading={
118-
organization.features.includes('visibility-explore-progressive-loading') &&
119-
defined(timeseriesSamplingMode) &&
120-
timeseriesSamplingMode !== SAMPLING_MODE.BEST_EFFORT
121-
}
116+
samplingMode={timeseriesSamplingMode}
122117
/>
123118
<MultiQueryTable
124119
confidences={[]}

static/app/views/explore/multiQueryMode/queryVisualizations/chart.tsx

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ import {Line} from 'sentry/views/dashboards/widgets/timeSeriesWidget/plottables/
2626
import {TimeSeriesWidgetVisualization} from 'sentry/views/dashboards/widgets/timeSeriesWidget/timeSeriesWidgetVisualization';
2727
import {Widget} from 'sentry/views/dashboards/widgets/widget/widget';
2828
import {EXPLORE_CHART_TYPE_OPTIONS} from 'sentry/views/explore/charts';
29-
import {ConfidenceFooter} from 'sentry/views/explore/charts/confidenceFooter';
30-
import {getProgressiveLoadingIndicator} from 'sentry/views/explore/components/progressiveLoadingIndicator';
29+
import {WidgetExtrapolationFooter} from 'sentry/views/explore/charts/widgetExtrapolationFooter';
3130
import {Mode} from 'sentry/views/explore/contexts/pageParamsContext/mode';
3231
import {useChartInterval} from 'sentry/views/explore/hooks/useChartInterval';
32+
import type {SamplingMode} from 'sentry/views/explore/hooks/useProgressiveQuery';
3333
import {useAddCompareQueryToDashboard} from 'sentry/views/explore/multiQueryMode/hooks/useAddCompareQueryToDashboard';
3434
import {DEFAULT_TOP_EVENTS} from 'sentry/views/explore/multiQueryMode/hooks/useMultiQueryTimeseries';
3535
import {
@@ -49,7 +49,7 @@ export interface MultiQueryChartProps {
4949
mode: Mode;
5050
query: ReadableExploreQueryParts;
5151
timeseriesResult: ReturnType<typeof useSortedTimeSeries>;
52-
isProgressivelyLoading?: boolean;
52+
samplingMode?: SamplingMode;
5353
}
5454

5555
export const EXPLORE_CHART_GROUP = 'multi-query-charts_group';
@@ -60,7 +60,7 @@ export function MultiQueryModeChart({
6060
mode,
6161
timeseriesResult,
6262
canUsePreviousResults,
63-
isProgressivelyLoading,
63+
samplingMode,
6464
}: MultiQueryChartProps) {
6565
const theme = useTheme();
6666

@@ -133,7 +133,10 @@ export function MultiQueryModeChart({
133133
]);
134134

135135
const {data, error, loading} = getSeries();
136-
const {sampleCount, isSampled} = determineSeriesSampleCountAndIsSampled(data, isTopN);
136+
const {sampleCount, isSampled, dataScanned} = determineSeriesSampleCountAndIsSampled(
137+
data,
138+
isTopN
139+
);
137140

138141
const visualizationType =
139142
queryParts.chartType === ChartType.LINE
@@ -169,9 +172,20 @@ export function MultiQueryModeChart({
169172
key={index}
170173
height={CHART_HEIGHT}
171174
Title={Title}
172-
TitleBadges={[getProgressiveLoadingIndicator(isProgressivelyLoading)]}
173175
Visualization={<TimeSeriesWidgetVisualization.LoadingPlaceholder />}
174176
revealActions="always"
177+
Footer={
178+
organization.features.includes('visibility-explore-progressive-loading') && (
179+
<WidgetExtrapolationFooter
180+
samplingMode={undefined}
181+
sampleCount={0}
182+
isSampled={null}
183+
confidence={undefined}
184+
topEvents={undefined}
185+
dataScanned={undefined}
186+
/>
187+
)
188+
}
175189
/>
176190
);
177191
}
@@ -259,7 +273,6 @@ export function MultiQueryModeChart({
259273
key={index}
260274
height={CHART_HEIGHT}
261275
Title={Title}
262-
TitleBadges={[getProgressiveLoadingIndicator(isProgressivelyLoading)]}
263276
Actions={[
264277
<Tooltip
265278
key="visualization"
@@ -324,11 +337,13 @@ export function MultiQueryModeChart({
324337
/>
325338
}
326339
Footer={
327-
<ConfidenceFooter
340+
<WidgetExtrapolationFooter
328341
sampleCount={sampleCount}
329-
confidence={confidence}
330342
isSampled={isSampled}
343+
confidence={confidence}
331344
topEvents={isTopN ? numSeries : undefined}
345+
dataScanned={dataScanned}
346+
samplingMode={samplingMode}
332347
/>
333348
}
334349
/>

0 commit comments

Comments
 (0)