diff --git a/static/app/components/modals/widgetViewerModal.tsx b/static/app/components/modals/widgetViewerModal.tsx index 4ea55c2c524f26..058c9556f3c1b7 100644 --- a/static/app/components/modals/widgetViewerModal.tsx +++ b/static/app/components/modals/widgetViewerModal.tsx @@ -52,7 +52,9 @@ import useRouter from 'sentry/utils/useRouter'; import withPageFilters from 'sentry/utils/withPageFilters'; import {DisplayType, Widget, WidgetType} from 'sentry/views/dashboards/types'; import { + dashboardFiltersToString, eventViewFromWidget, + getDashboardFiltersFromURL, getFieldsFromEquations, getNumEquations, getWidgetDiscoverUrl, @@ -244,6 +246,7 @@ function WidgetViewerModal(props: Props) { // Get table sort settings from location const sort = decodeScalar(location.query[WidgetViewerQueryField.SORT]); + const sortedQueries = cloneDeep( sort ? widget.queries.map(query => ({...query, orderby: sort})) : widget.queries ); @@ -385,7 +388,15 @@ function WidgetViewerModal(props: Props) { const queryOptions = sortedQueries.map(({name, conditions}, index) => { // Creates the highlighted query elements to be used in the Query Select - const parsedQuery = !name && !!conditions ? parseSearch(conditions) : null; + const dashboardFilters = dashboardFiltersToString( + getDashboardFiltersFromURL(location) + ); + const parsedQuery = + !name && !!conditions + ? parseSearch( + conditions + (dashboardFilters === '' ? '' : ` ${dashboardFilters}`) + ) + : null; const getHighlightedQuery = ( highlightedContainerProps: React.ComponentProps ) => { @@ -728,6 +739,7 @@ function WidgetViewerModal(props: Props) { : HALF_TABLE_ITEM_LIMIT } cursor={cursor} + dashboardFilters={getDashboardFiltersFromURL(location) ?? undefined} > {renderIssuesTable} @@ -752,6 +764,7 @@ function WidgetViewerModal(props: Props) { : HALF_TABLE_ITEM_LIMIT } cursor={cursor} + dashboardFilters={getDashboardFiltersFromURL(location) ?? undefined} > {renderReleaseTable} @@ -779,6 +792,7 @@ function WidgetViewerModal(props: Props) { : HALF_TABLE_ITEM_LIMIT } cursor={cursor} + dashboardFilters={getDashboardFiltersFromURL(location) ?? undefined} > {({tableResults, loading, pageLinks}) => ( 1) { + dashboardFilterConditions += `${key}:[${activeFilters.join(',')}] `; + } + } + } + return dashboardFilterConditions; +} diff --git a/static/app/views/dashboards/widgetCard/genericWidgetQueries.tsx b/static/app/views/dashboards/widgetCard/genericWidgetQueries.tsx index 1468a48dd64644..fa77a10893c24b 100644 --- a/static/app/views/dashboards/widgetCard/genericWidgetQueries.tsx +++ b/static/app/views/dashboards/widgetCard/genericWidgetQueries.tsx @@ -11,6 +11,7 @@ import {Series} from 'sentry/types/echarts'; import {TableDataWithTitle} from 'sentry/utils/discover/discoverQuery'; import {AggregationOutputType} from 'sentry/utils/discover/fields'; import {MEPState} from 'sentry/utils/performance/contexts/metricsEnhancedSetting'; +import {dashboardFiltersToString} from 'sentry/views/dashboards/utils'; import {DatasetConfig} from '../datasetConfig/base'; import { @@ -210,17 +211,7 @@ class GenericWidgetQueries extends Component< applyDashboardFilters(widget: Widget): Widget { const {dashboardFilters} = this.props; - let dashboardFilterConditions = ''; - if (dashboardFilters) { - for (const [key, activeFilters] of Object.entries(dashboardFilters)) { - if (activeFilters.length === 1) { - dashboardFilterConditions += `${key}:${activeFilters[0]} `; - } else if (activeFilters.length > 1) { - dashboardFilterConditions += `${key}:[${activeFilters.join(',')}] `; - } - } - } - + const dashboardFilterConditions = dashboardFiltersToString(dashboardFilters); widget.queries.forEach(query => { query.conditions = query.conditions +