import ExternalLink from 'sentry/components/links/externalLink'; import {t, tct} from 'sentry/locale'; import type {TagCollection} from 'sentry/types/group'; import type {Organization} from 'sentry/types/organization'; import type {QueryFieldValue} from 'sentry/utils/discover/fields'; import useCustomMeasurements from 'sentry/utils/useCustomMeasurements'; import {getDatasetConfig} from 'sentry/views/dashboards/datasetConfig/base'; import type {DisplayType, WidgetQuery, WidgetType} from 'sentry/views/dashboards/types'; import {DataSet} from '../../utils'; import {BuildStep} from '../buildStep'; import {ColumnFields} from './columnFields'; interface Props { dataSet: DataSet; displayType: DisplayType; explodedFields: QueryFieldValue[]; handleColumnFieldChange: (newFields: QueryFieldValue[]) => void; isOnDemandWidget: boolean; onQueryChange: (queryIndex: number, newQuery: WidgetQuery) => void; organization: Organization; tags: TagCollection; widgetType: WidgetType; queryErrors?: Record[]; } export function ColumnsStep({ dataSet, displayType, organization, widgetType, handleColumnFieldChange, queryErrors, explodedFields, tags, isOnDemandWidget, }: Props) { const {customMeasurements} = useCustomMeasurements(); const datasetConfig = getDatasetConfig(widgetType); return ( ), } ) : dataSet === DataSet.RELEASES ? tct( 'To stack sessions, add [functionLink: functions] f(x) that may take in additional parameters. [fieldTagLink: Field and tag] columns will help you view more details about the sessions (e.g., releases).', { functionLink: ( ), fieldTagLink: ( ), } ) : tct( 'To stack events, add [functionLink: functions] f(x) that may take in additional parameters. [fieldTagLink: Field and tag] columns will help you view more details about the events (e.g., title).', { functionLink: ( ), fieldTagLink: ( ), } ) } > ); }