details.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import styled from '@emotion/styled';
  2. import NotAvailable from 'sentry/components/notAvailable';
  3. import {t} from 'sentry/locale';
  4. import {space} from 'sentry/styles/space';
  5. function Details() {
  6. return (
  7. <Wrapper>
  8. {t('Last detected version')}
  9. <Value>
  10. <NotAvailable tooltip={t('Not available')} />
  11. </Value>
  12. {t('Last detected build')}
  13. <Value>{<NotAvailable tooltip={t('Not available')} />}</Value>
  14. {t('Detected last build on')}
  15. <Value>
  16. <NotAvailable tooltip={t('Not available')} />
  17. </Value>
  18. </Wrapper>
  19. );
  20. }
  21. export default Details;
  22. const Wrapper = styled('div')`
  23. display: grid;
  24. gap: ${space(1)};
  25. margin-top: ${space(0.5)};
  26. align-items: center;
  27. font-size: ${p => p.theme.fontSizeSmall};
  28. font-weight: ${p => p.theme.fontWeightBold};
  29. grid-column: 2/-1;
  30. @media (min-width: ${p => p.theme.breakpoints.small}) {
  31. margin-top: ${space(1)};
  32. grid-template-columns: max-content 1fr;
  33. gap: ${space(1)};
  34. grid-row: 3/3;
  35. }
  36. `;
  37. const Value = styled('div')`
  38. font-weight: ${p => p.theme.fontWeightNormal};
  39. white-space: pre-wrap;
  40. word-break: break-all;
  41. padding: ${space(1)} ${space(1.5)};
  42. font-family: ${p => p.theme.text.familyMono};
  43. background-color: ${p => p.theme.backgroundSecondary};
  44. @media (max-width: ${p => p.theme.breakpoints.small}) {
  45. :not(:last-child) {
  46. margin-bottom: ${space(1)};
  47. }
  48. }
  49. `;