feedbackViewers.tsx 1021 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import {Fragment} from 'react';
  2. import styled from '@emotion/styled';
  3. import AvatarList from 'sentry/components/avatar/avatarList';
  4. import {DateTime} from 'sentry/components/dateTime';
  5. import {space} from 'sentry/styles/space';
  6. import type {AvatarUser} from 'sentry/types/user';
  7. import type {FeedbackIssue} from 'sentry/utils/feedback/types';
  8. import {userDisplayName} from 'sentry/utils/formatters';
  9. interface Props {
  10. feedbackItem: FeedbackIssue;
  11. }
  12. export default function FeedbackViewers({feedbackItem}: Props) {
  13. const displayUsers = feedbackItem.seenBy;
  14. return (
  15. <StyledAvatarList
  16. users={displayUsers}
  17. avatarSize={28}
  18. maxVisibleAvatars={5}
  19. tooltipOptions={{position: 'top'}}
  20. renderTooltip={user => (
  21. <Fragment>
  22. {userDisplayName(user)}
  23. <br />
  24. <DateTime date={(user as AvatarUser).lastSeen} />
  25. </Fragment>
  26. )}
  27. />
  28. );
  29. }
  30. const StyledAvatarList = styled(AvatarList)`
  31. flex-direction: end;
  32. margin-left: ${space(0.75)};
  33. `;