import styled from '@emotion/styled'; import type {RadioGroupProps} from 'sentry/components/forms/controls/radioGroup'; import RadioGroup from 'sentry/components/forms/controls/radioGroup'; import ExternalLink from 'sentry/components/links/externalLink'; import {t, tct} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import {DisplayType} from 'sentry/views/dashboards/types'; import {DataSet} from '../utils'; import {BuildStep} from './buildStep'; // const DATASET_CHOICES: [DataSet, string][] = [ // [DataSet.EVENTS, t('Errors and Transactions')], // [DataSet.ISSUES, t('Issues (States, Assignment, Time, etc.)')], // ]; interface Props { dataSet: DataSet; displayType: DisplayType; hasCustomMetricsFeature: boolean; hasReleaseHealthFeature: boolean; onChange: (dataSet: DataSet) => void; } export function DataSetStep({ dataSet, onChange, hasReleaseHealthFeature, hasCustomMetricsFeature, displayType, }: Props) { const disabledChoices: RadioGroupProps['disabledChoices'] = []; if (displayType !== DisplayType.TABLE) { disabledChoices.push([ DataSet.ISSUES, t('This dataset is restricted to tabular visualization.'), ]); } const datasetChoices = new Map(); datasetChoices.set(DataSet.EVENTS, t('Errors and Transactions')); datasetChoices.set(DataSet.ISSUES, t('Issues (States, Assignment, Time, etc.)')); if (hasReleaseHealthFeature) { datasetChoices.set(DataSet.RELEASES, t('Releases (Sessions, Crash rates)')); } if (hasCustomMetricsFeature) { datasetChoices.set(DataSet.METRICS, t('Custom Metrics')); } return ( ), } )} > { onChange(newDataSet as DataSet); }} orientInline /> ); } const DataSetChoices = styled(RadioGroup)` display: flex; flex-wrap: wrap; gap: ${space(2)}; `;