eventMessage.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import styled from '@emotion/styled';
  3. import ErrorLevel from 'app/components/events/errorLevel';
  4. import overflowEllipsis from 'app/styles/overflowEllipsis';
  5. import space from 'app/styles/space';
  6. import {Level} from 'app/types';
  7. type Props = {
  8. level?: Level;
  9. levelIndicatorSize?: string;
  10. message?: React.ReactNode;
  11. annotations?: React.ReactNode;
  12. className?: string;
  13. hasGuideAnchor?: boolean;
  14. };
  15. const EventMessage = ({
  16. className,
  17. level,
  18. levelIndicatorSize,
  19. message,
  20. annotations,
  21. }: Props) => (
  22. <div className={className}>
  23. {level && (
  24. <StyledErrorLevel size={levelIndicatorSize} level={level}>
  25. {level}
  26. </StyledErrorLevel>
  27. )}
  28. {message && <Message>{message}</Message>}
  29. {annotations}
  30. </div>
  31. );
  32. const StyledEventMessage = styled(EventMessage)`
  33. display: flex;
  34. align-items: center;
  35. position: relative;
  36. line-height: 1.2;
  37. overflow: hidden;
  38. `;
  39. const StyledErrorLevel = styled(ErrorLevel)`
  40. margin-right: ${space(1)};
  41. `;
  42. const Message = styled('span')`
  43. ${overflowEllipsis}
  44. width: auto;
  45. max-height: 38px;
  46. `;
  47. export default StyledEventMessage;