RevisionAuthor.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { userPageRoot } from '@commons/util/path-utils';
  4. import UserPicture from '../User/UserPicture';
  5. const RevisionAuthor = (props) => {
  6. const { revisionAuthor, updatedAt, isCompactMode } = props;
  7. const updateInfo = isCompactMode
  8. ? (<div>Updated at <span className="text-muted">{updatedAt}</span></div>)
  9. : (
  10. <div>
  11. <div>Updated by <a href={userPageRoot(revisionAuthor)}>{revisionAuthor.name}</a></div>
  12. <div className="text-muted text-date">{updatedAt}</div>
  13. </div>
  14. );
  15. const pictureSize = isCompactMode ? 'xs' : 'sm';
  16. return (
  17. <div className="d-flex align-items-center">
  18. <div className="mr-2">
  19. <UserPicture user={revisionAuthor} size={pictureSize} />
  20. </div>
  21. {updateInfo}
  22. </div>
  23. );
  24. };
  25. RevisionAuthor.propTypes = {
  26. revisionAuthor: PropTypes.object.isRequired,
  27. updatedAt: PropTypes.string.isRequired,
  28. isCompactMode: PropTypes.bool,
  29. };
  30. RevisionAuthor.defaultProps = {
  31. isCompactMode: false,
  32. };
  33. export default RevisionAuthor;