import {Fragment} from 'react'; import styled from '@emotion/styled'; import FeatureBadge from 'sentry/components/badge/featureBadge'; import RadioGroup, {type RadioOption} from 'sentry/components/forms/controls/radioGroup'; import ExternalLink from 'sentry/components/links/externalLink'; import {Tooltip} from 'sentry/components/tooltip'; import {t, tct} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import useOrganization from 'sentry/utils/useOrganization'; import {WidgetType} from 'sentry/views/dashboards/types'; import {useWidgetBuilderContext} from 'sentry/views/dashboards/widgetBuilder/contexts/widgetBuilderContext'; import {BuilderStateAction} from 'sentry/views/dashboards/widgetBuilder/hooks/useWidgetBuilderState'; function WidgetBuilderDatasetSelector() { const organization = useOrganization(); const {state, dispatch} = useWidgetBuilderContext(); const datasetChoices: RadioOption[] = []; datasetChoices.push([WidgetType.ERRORS, t('Errors')]); datasetChoices.push([WidgetType.TRANSACTIONS, t('Transactions')]); if (organization.features.includes('dashboards-eap')) { datasetChoices.push([ WidgetType.SPANS, {t('Spans')} , ]); } datasetChoices.push([WidgetType.ISSUE, t('Issues')]); datasetChoices.push([WidgetType.RELEASE, t('Releases')]); return ( ), } )} position="auto" delay={200} isHoverable >
{t('Dataset')}
dispatch({ type: BuilderStateAction.SET_DATASET, payload: newValue, }) } />
); } export default WidgetBuilderDatasetSelector; const DatasetChoices = styled(RadioGroup)` display: flex; flex-direction: row; flex-wrap: wrap; gap: ${space(2)}; `; const FeatureBadgeAlignmentWrapper = styled('div')` ${FeatureBadge} { position: relative; top: -1px; } `; const Header = styled('h6')` font-size: ${p => p.theme.fontSizeLarge}; margin-bottom: ${space(2)}; border-bottom: 1px dotted ${p => p.theme.textColor}; `;