import {Fragment} from 'react';
import styled from '@emotion/styled';
import QuestionTooltip from 'sentry/components/questionTooltip';
import {space} from 'sentry/styles/space';
import {PERFORMANCE_SCORE_COLORS} from 'sentry/views/insights/browser/webVitals/utils/performanceScoreColors';
type Props = {
description: string;
formattedValue: string | undefined;
status: string | undefined;
statusLabel: string | undefined;
title: string;
onClick?: () => void;
};
function VitalCard({
description,
formattedValue,
status,
statusLabel,
title,
onClick,
}: Props) {
return (
{description && (
{description}}
/>
)}
{title}
{formattedValue ?? '-'}
);
}
const MeterBarContainer = styled('div')<{clickable?: boolean}>`
flex: 1;
position: relative;
padding: 0;
cursor: ${p => (p.clickable ? 'pointer' : 'default')};
min-width: 140px;
`;
const MeterBarBody = styled('div')`
border: 1px solid ${p => p.theme.gray200};
border-radius: ${p => p.theme.borderRadius} ${p => p.theme.borderRadius} 0 0;
border-bottom: none;
padding: ${space(1)} 0 ${space(0.5)} 0;
`;
const MeterHeader = styled('div')`
font-size: ${p => p.theme.fontSizeSmall};
color: ${p => p.theme.textColor};
display: inline-block;
text-align: center;
width: 100%;
`;
const MeterValueText = styled('div')`
display: flex;
justify-content: center;
align-items: center;
font-size: ${p => p.theme.headerFontSize};
color: ${p => p.theme.textColor};
flex: 1;
text-align: center;
`;
function MeterBarFooter({
label,
status,
}: {
label: string | undefined;
status: string | undefined;
}) {
return (
{label || '-'}
);
}
const MeterBarFooterContainer = styled('div')<{status: string}>`
color: ${p => p.theme[PERFORMANCE_SCORE_COLORS[p.status].normal]};
border-radius: 0 0 ${p => p.theme.borderRadius} ${p => p.theme.borderRadius};
background-color: ${p =>
p.status === 'none' ? 'none' : p.theme[PERFORMANCE_SCORE_COLORS[p.status].light]};
border: solid 1px ${p => p.theme[PERFORMANCE_SCORE_COLORS[p.status].light]};
font-size: ${p => p.theme.fontSizeExtraSmall};
padding: ${space(0.5)};
text-align: center;
`;
const StyledQuestionTooltip = styled(QuestionTooltip)`
position: absolute;
right: ${space(1)};
`;
export default VitalCard;