RevisionAuthor.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import UserPicture from '../User/UserPicture';
  4. import { userPageRoot } from '../../../../lib/util/path-utils';
  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. : (<div><div>Updated by <a href={userPageRoot(revisionAuthor)}>{revisionAuthor.name}</a></div><div className="text-muted">{updatedAt}</div></div>);
  10. const pictureSize = isCompactMode ? 'xs' : 'sm';
  11. return (
  12. <div className="d-flex align-items-center">
  13. <div className="mr-2" href={userPageRoot(revisionAuthor)} data-toggle="tooltip" data-placement="bottom" title={revisionAuthor.name}>
  14. <UserPicture user={revisionAuthor} size={pictureSize} />
  15. </div>
  16. {updateInfo}
  17. </div>
  18. );
  19. };
  20. RevisionAuthor.propTypes = {
  21. revisionAuthor: PropTypes.object.isRequired,
  22. updatedAt: PropTypes.string.isRequired,
  23. isCompactMode: PropTypes.bool,
  24. };
  25. RevisionAuthor.defaultProps = {
  26. isCompactMode: false,
  27. };
  28. export default RevisionAuthor;