UserInfo.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import { UserPicture } from '@growi/ui';
  3. import { usePageUser } from '~/stores/context';
  4. import styles from './UserInfo.module.scss';
  5. export const UserInfo = (): JSX.Element => {
  6. const { data: pageUser } = usePageUser();
  7. if (pageUser == null || pageUser.status === 4) {
  8. return <></>;
  9. }
  10. return (
  11. <div className={`${styles['grw-users-info']} grw-users-info d-flex align-items-center d-edit-none mb-5 pb-3 border-bottom`}>
  12. <UserPicture user={pageUser} />
  13. <div className="users-meta">
  14. <h1 className="user-page-name">
  15. {pageUser.name}
  16. </h1>
  17. <div className="user-page-meta mt-3 mb-0">
  18. <span className="user-page-username mr-4"><i className="icon-user mr-1"></i>{pageUser.username}</span>
  19. <span className="user-page-email mr-2">
  20. <i className="icon-envelope mr-1"></i>
  21. { pageUser.isEmailPublished
  22. ? pageUser.email
  23. : '*****'
  24. }
  25. </span>
  26. { pageUser.introduction && (
  27. <span className="user-page-introduction">{pageUser.introduction}</span>
  28. ) }
  29. </div>
  30. </div>
  31. </div>
  32. );
  33. };