diff --git a/web-common/src/features/canvas/components/pivot/index.ts b/web-common/src/features/canvas/components/pivot/index.ts index 6ffa4559407..6e333ff2d54 100644 --- a/web-common/src/features/canvas/components/pivot/index.ts +++ b/web-common/src/features/canvas/components/pivot/index.ts @@ -99,6 +99,7 @@ export class PivotCanvasComponent extends BaseCanvasComponent< this.parent, derived(this.specStore, ($specStore) => $specStore.metrics_view), this.config, + this.visible, ); } diff --git a/web-common/src/features/canvas/components/pivot/util.ts b/web-common/src/features/canvas/components/pivot/util.ts index 385e3c26103..b42ef73a183 100644 --- a/web-common/src/features/canvas/components/pivot/util.ts +++ b/web-common/src/features/canvas/components/pivot/util.ts @@ -266,12 +266,13 @@ export const usePivotForCanvas = ( canvas: CanvasEntity, metricsViewStore: Readable, pivotConfig: Readable, + visible: Readable, ) => { const pivotDashboardContext: PivotDashboardContext = { runtimeClient: canvas.client, metricsViewName: metricsViewStore, queryClient: queryClient, - enabled: !!canvas, + enabled: visible, }; const pivotDataStore = createPivotDataStore( diff --git a/web-common/src/features/dashboards/pivot/pivot-data-store.ts b/web-common/src/features/dashboards/pivot/pivot-data-store.ts index 275e63cc73a..9dd950df8d4 100644 --- a/web-common/src/features/dashboards/pivot/pivot-data-store.ts +++ b/web-common/src/features/dashboards/pivot/pivot-data-store.ts @@ -729,7 +729,7 @@ export const usePivotForExplore = memoizeMetricsStore( runtimeClient: ctx.runtimeClient, metricsViewName: ctx.metricsViewName, queryClient: ctx.queryClient, - enabled: !!ctx.dashboardStore, + enabled: readable(!!ctx.dashboardStore), }; return createPivotDataStore(pivotDashboardContext, pivotConfig); }, diff --git a/web-common/src/features/dashboards/pivot/pivot-queries.ts b/web-common/src/features/dashboards/pivot/pivot-queries.ts index 51ebfa9c303..b214ce205c3 100644 --- a/web-common/src/features/dashboards/pivot/pivot-queries.ts +++ b/web-common/src/features/dashboards/pivot/pivot-queries.ts @@ -1,3 +1,4 @@ +import type { ConnectError } from "@connectrpc/connect"; import { createAndExpression, createInExpression, @@ -11,9 +12,8 @@ import { type V1MetricsViewAggregationResponse, type V1MetricsViewAggregationResponseDataItem, type V1MetricsViewAggregationSort, + createQueryServiceMetricsViewAggregation, } from "@rilldata/web-common/runtime-client"; -import type { ConnectError } from "@connectrpc/connect"; -import { createQueryServiceMetricsViewAggregation } from "@rilldata/web-common/runtime-client"; import { type CreateQueryResult, keepPreviousData, @@ -71,39 +71,41 @@ export function createPivotAggregationRowQuery( hasComparison = true; } - return derived([ctx.metricsViewName], ([metricsViewName], set) => - createQueryServiceMetricsViewAggregation( - ctx.runtimeClient, - { - metricsView: metricsViewName, - measures: prepareMeasureForComparison(measures), - dimensions, - where: sanitiseExpression(whereFilter, undefined), - timeRange: { - start: timeRange?.start ? timeRange.start : config.time.timeStart, - end: timeRange?.end ? timeRange.end : config.time.timeEnd, - timeDimension: config.time.timeDimension, + return derived( + [ctx.metricsViewName, ctx.enabled], + ([metricsViewName, enabled], set) => + createQueryServiceMetricsViewAggregation( + ctx.runtimeClient, + { + metricsView: metricsViewName, + measures: prepareMeasureForComparison(measures), + dimensions, + where: sanitiseExpression(whereFilter, undefined), + timeRange: { + start: timeRange?.start ? timeRange.start : config.time.timeStart, + end: timeRange?.end ? timeRange.end : config.time.timeEnd, + timeDimension: config.time.timeDimension, + }, + comparisonTimeRange: + hasComparison && comparisonTime + ? { + start: comparisonTime.start, + end: comparisonTime.end, + timeDimension: config.time.timeDimension, + } + : undefined, + sort, + limit, + offset, }, - comparisonTimeRange: - hasComparison && comparisonTime - ? { - start: comparisonTime.start, - end: comparisonTime.end, - timeDimension: config.time.timeDimension, - } - : undefined, - sort, - limit, - offset, - }, - { - query: { - enabled: ctx.enabled, - placeholderData: keepPreviousData, + { + query: { + enabled, + placeholderData: keepPreviousData, + }, }, - }, - ctx.queryClient, - ).subscribe(set), + ctx.queryClient, + ).subscribe(set), ); } diff --git a/web-common/src/features/dashboards/pivot/types.ts b/web-common/src/features/dashboards/pivot/types.ts index 1766f624c09..e8ecf0db7f5 100644 --- a/web-common/src/features/dashboards/pivot/types.ts +++ b/web-common/src/features/dashboards/pivot/types.ts @@ -44,7 +44,7 @@ export interface PivotDashboardContext { runtimeClient: RuntimeClient; metricsViewName: Readable; queryClient: QueryClient; - enabled: boolean; + enabled: Readable; } export interface PivotState {