mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
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;
|
|
hasReleaseHealthFeature: boolean;
|
|
onChange: (dataSet: DataSet) => void;
|
|
}
|
|
|
|
export function DataSetStep({
|
|
dataSet,
|
|
onChange,
|
|
hasReleaseHealthFeature,
|
|
displayType,
|
|
}: Props) {
|
|
const disabledChoices: RadioGroupProps<string>['disabledChoices'] = [];
|
|
|
|
if (displayType !== DisplayType.TABLE) {
|
|
disabledChoices.push([
|
|
DataSet.ISSUES,
|
|
t('This dataset is restricted to tabular visualization.'),
|
|
]);
|
|
}
|
|
|
|
const datasetChoices = new Map<string, string>();
|
|
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)'));
|
|
}
|
|
|
|
return (
|
|
<BuildStep
|
|
title={t('Choose your dataset')}
|
|
description={tct(
|
|
`This reflects the type of information you want to use. To learn more, [link: read the docs].`,
|
|
{
|
|
link: (
|
|
<ExternalLink href="https://docs.sentry.io/product/dashboards/widget-builder/#choose-your-dataset" />
|
|
),
|
|
}
|
|
)}
|
|
>
|
|
<DataSetChoices
|
|
label="dataSet"
|
|
value={dataSet}
|
|
choices={[...datasetChoices.entries()]}
|
|
disabledChoices={disabledChoices}
|
|
onChange={newDataSet => {
|
|
onChange(newDataSet as DataSet);
|
|
}}
|
|
orientInline
|
|
/>
|
|
</BuildStep>
|
|
);
|
|
}
|
|
|
|
const DataSetChoices = styled(RadioGroup)`
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: ${space(2)};
|
|
`;
|