Просмотр исходного кода

willUpdateImageUrlCacheUserIds

yusuketk 6 лет назад
Родитель
Сommit
d951b59769

+ 5 - 2
src/client/js/components/User/UserPicture.jsx

@@ -1,6 +1,8 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 
+import AppContainer from '../../services/AppContainer';
+
 const DEFAULT_IMAGE = '/images/icons/user.svg';
 
 // TODO UserComponent?
@@ -27,14 +29,14 @@ export default class UserPicture extends React.Component {
   }
 
   render() {
-    const user = this.props.user;
+    const { user, appContainer } = this.props;
 
     if (user == null) {
       return this.renderForNull();
     }
 
     if (!user.imageUrlCached) {
-      // [TODO][GW-1942] add imageUrlCached
+      appContainer.addUserIdWillUpdateImageUrlCached(user.id);
       return this.renderForNull();
     }
 
@@ -59,6 +61,7 @@ UserPicture.propTypes = {
   user: PropTypes.object,
   size: PropTypes.string,
   withoutLink: PropTypes.bool,
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
 };
 
 UserPicture.defaultProps = {

+ 11 - 0
src/client/js/services/AppContainer.js

@@ -31,6 +31,7 @@ export default class AppContainer extends Container {
 
     this.state = {
       editorMode: null,
+      willUpdateImageUrlCacheUserIds: []
     };
 
     const body = document.querySelector('body');
@@ -159,6 +160,16 @@ export default class AppContainer extends Container {
     this.containerInstances[className] = instance;
   }
 
+  /**
+   * add user id that will be update imageUrlCached
+   * @param {id} userId added user id
+   */
+  addUserIdWillUpdateImageUrlCached(userId) {
+    const willUpdateImageUrlCacheUserIds = this.state.willUpdateImageUrlCacheUserIds;
+    willUpdateImageUrlCacheUserIds.push(userId);
+    this.setState({ willUpdateImageUrlCacheUserIds });
+  }
+
   /**
    * Get registered unstated container instance
    * !! THIS METHOD SHOULD ONLY BE USED FROM unstated CONTAINERS !!