import styled from '@emotion/styled'; import {Location} from 'history'; import ErrorPanel from 'sentry/components/charts/errorPanel'; import SimpleTableChart from 'sentry/components/charts/simpleTableChart'; import Placeholder from 'sentry/components/placeholder'; import {IconWarning} from 'sentry/icons'; import {space} from 'sentry/styles/space'; import {Organization, PageFilters} from 'sentry/types'; import {defined} from 'sentry/utils'; import {TableDataRow} from 'sentry/utils/discover/discoverQuery'; import {eventViewFromWidget} from 'sentry/views/dashboards/utils'; import {getDatasetConfig} from '../datasetConfig/base'; import {Widget, WidgetType} from '../types'; import {ISSUE_FIELDS} from '../widgetBuilder/issueWidget/fields'; type Props = { loading: boolean; location: Location; organization: Organization; selection: PageFilters; transformedResults: TableDataRow[]; widget: Widget; errorMessage?: string; }; export function IssueWidgetCard({ organization, selection, widget, errorMessage, loading, transformedResults, location, }: Props) { const datasetConfig = getDatasetConfig(WidgetType.ISSUE); if (errorMessage) { return ( ); } if (loading) { // Align height to other charts. return ; } const query = widget.queries[0]; const queryFields = defined(query.fields) ? query.fields : [...query.columns, ...query.aggregates]; const fieldAliases = query.fieldAliases ?? []; const eventView = eventViewFromWidget( widget.title, widget.queries[0], selection, widget.displayType ); return ( ); } const LoadingPlaceholder = styled(Placeholder)` background-color: ${p => p.theme.surface300}; `; const StyledSimpleTableChart = styled(SimpleTableChart)` margin-top: ${space(1.5)}; border-bottom-left-radius: ${p => p.theme.borderRadius}; border-bottom-right-radius: ${p => p.theme.borderRadius}; font-size: ${p => p.theme.fontSizeMedium}; box-shadow: none; `;