import { css } from '@emotion/css'; import React, { FC } from 'react'; import { GrafanaTheme } from '@grafana/data'; import { Tooltip, useStyles } from '@grafana/ui'; import { Annotation, annotationLabels } from '../utils/constants'; import { DetailsField } from './DetailsField'; import { Well } from './Well'; const wellableAnnotationKeys = ['message', 'description']; interface Props { annotationKey: string; value: string; } export const AnnotationDetailsField: FC = ({ annotationKey, value }) => { const label = annotationLabels[annotationKey as Annotation] ? ( {annotationLabels[annotationKey as Annotation]} ) : ( annotationKey ); return ( ); }; const AnnotationValue: FC = ({ annotationKey, value }) => { const styles = useStyles(getStyles); const needsWell = wellableAnnotationKeys.includes(annotationKey); const needsLink = value && value.startsWith('http'); if (needsWell) { return {value}; } if (needsLink) { return ( {value} ); } return <>{value}; }; export const getStyles = (theme: GrafanaTheme) => ({ well: css` word-break: break-all; `, link: css` word-break: break-all; color: ${theme.colors.textBlue}; `, });