From 1169340436daaf3b24338164efeffb9e0c73e965 Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Wed, 26 Nov 2025 13:35:28 -0500 Subject: [PATCH 1/7] add details widget --- .../views/dashboards/datasetConfig/spans.tsx | 2 + static/app/views/dashboards/types.tsx | 1 + static/app/views/dashboards/utils.tsx | 9 ++++ .../components/sortBySelectors.tsx | 2 +- .../widgetBuilder/components/typeSelector.tsx | 9 +++- .../components/visualize/index.tsx | 5 +-- .../components/visualize/selectRow.tsx | 5 +-- .../components/widgetBuilderSlideout.tsx | 15 ++++--- .../components/widgetPreview.tsx | 5 +-- .../hooks/useWidgetBuilderState.tsx | 44 +++++++++++++------ .../utils/convertBuilderStateToWidget.ts | 10 ++--- .../convertWidgetToBuilderStateParams.ts | 10 ++--- .../app/views/dashboards/widgetCard/chart.tsx | 26 +++++++++++ .../widgetCard/genericWidgetQueries.tsx | 11 +++-- .../widgetCard/widgetCardChartContainer.tsx | 6 +-- 15 files changed, 108 insertions(+), 52 deletions(-) diff --git a/static/app/views/dashboards/datasetConfig/spans.tsx b/static/app/views/dashboards/datasetConfig/spans.tsx index b44b8421f800de..8088c28a090ca9 100644 --- a/static/app/views/dashboards/datasetConfig/spans.tsx +++ b/static/app/views/dashboards/datasetConfig/spans.tsx @@ -193,6 +193,7 @@ export const SpansConfig: DatasetConfig< DisplayType.LINE, DisplayType.TABLE, DisplayType.TOP_N, + DisplayType.DETAILS, ], getTableRequest: ( api: Client, @@ -316,6 +317,7 @@ function getEventsRequest( ) { const url = `/organizations/${organization.slug}/events/`; const eventView = eventViewFromWidget('', query, pageFilters); + const hasQueueFeature = organization.features.includes( 'visibility-dashboards-async-queue' ); diff --git a/static/app/views/dashboards/types.tsx b/static/app/views/dashboards/types.tsx index a99d11f29b6dd1..0e975b89834091 100644 --- a/static/app/views/dashboards/types.tsx +++ b/static/app/views/dashboards/types.tsx @@ -24,6 +24,7 @@ export enum DisplayType { LINE = 'line', TABLE = 'table', BIG_NUMBER = 'big_number', + DETAILS = 'details', TOP_N = 'top_n', } diff --git a/static/app/views/dashboards/utils.tsx b/static/app/views/dashboards/utils.tsx index 07a9933a03a64f..76434714fc2ca2 100644 --- a/static/app/views/dashboards/utils.tsx +++ b/static/app/views/dashboards/utils.tsx @@ -702,3 +702,12 @@ export function applyDashboardFilters( } return baseQuery; } + +export const isChartDisplayType = (displayType?: DisplayType) => { + if (!displayType) { + return true; + } + return ![DisplayType.BIG_NUMBER, DisplayType.TABLE, DisplayType.DETAILS].includes( + displayType + ); +}; diff --git a/static/app/views/dashboards/widgetBuilder/components/sortBySelectors.tsx b/static/app/views/dashboards/widgetBuilder/components/sortBySelectors.tsx index 47a729a8a42914..55c931ef2adcab 100644 --- a/static/app/views/dashboards/widgetBuilder/components/sortBySelectors.tsx +++ b/static/app/views/dashboards/widgetBuilder/components/sortBySelectors.tsx @@ -144,7 +144,7 @@ export function SortBySelectors({ title={disableSortReason} disabled={!disableSort || (disableSortDirection && disableSort)} > - {displayType === DisplayType.TABLE ? ( + {displayType === DisplayType.TABLE || displayType === DisplayType.DETAILS ? (