SeenUserList.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from 'react';
  2. import UserList from './UserList';
  3. import $ from 'jquery';
  4. export default class SeenUserList extends React.Component {
  5. constructor(props) {
  6. super(props);
  7. this.state = {
  8. seenUsers: [],
  9. };
  10. }
  11. componentDidMount() {
  12. const seenUserIds = this.getSeenUserIds();
  13. if (seenUserIds.length > 0) {
  14. // FIXME: user data cache
  15. $.get('/_api/users.list', {user_ids: seenUserIds.join(',')}, function(res) {
  16. // ignore unless response has error
  17. if (res.ok) {
  18. this.setState({seenUsers: res.users});
  19. }
  20. }.bind(this));
  21. }
  22. }
  23. getSeenUserIds() {
  24. const $seenUserList = $("#seen-user-list");
  25. if ($seenUserList.length > 0) {
  26. const seenUsers = $seenUserList.data('seen-users');
  27. if (seenUsers) {
  28. return seenUsers.split(',');
  29. }
  30. }
  31. return [];
  32. }
  33. render() {
  34. return (
  35. <p className="seen-user-list">
  36. <p className="seen-user-count">
  37. {this.state.seenUsers.length}
  38. </p>
  39. <UserList users={this.state.seenUsers} />
  40. </p>
  41. );
  42. }
  43. }