about summary refs log tree commit diff
path: root/app/javascript/mastodon/components/status_action_bar.js
diff options
context:
space:
mode:
authorNolan Lawson <nolan@nolanlawson.com>2017-05-26 05:05:52 -0700
committerEugen Rochko <eugen@zeonfederated.com>2017-05-26 14:05:52 +0200
commitb00cb2aed3634ad6624e144b99d538eb85c58c12 (patch)
tree2975b9811f64cf18e334734e74c202f20e0b69cb /app/javascript/mastodon/components/status_action_bar.js
parent7c67cb599713cfeec4bdcb5447f36718886da2be (diff)
Improve shouldComponentUpdate for status and status_action_bar (#3323)
Diffstat (limited to 'app/javascript/mastodon/components/status_action_bar.js')
-rw-r--r--app/javascript/mastodon/components/status_action_bar.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index 5457dabac..064d841b8 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
 import IconButton from './icon_button';
 import DropdownMenu from './dropdown_menu';
 import { defineMessages, injectIntl } from 'react-intl';
+import ImmutablePureComponent from 'react-immutable-pure-component';
 
 const messages = defineMessages({
   delete: { id: 'status.delete', defaultMessage: 'Delete' },
@@ -21,7 +22,7 @@ const messages = defineMessages({
   unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' },
 });
 
-class StatusActionBar extends React.PureComponent {
+class StatusActionBar extends ImmutablePureComponent {
 
   static contextTypes = {
     router: PropTypes.object,
@@ -43,6 +44,14 @@ class StatusActionBar extends React.PureComponent {
     intl: PropTypes.object.isRequired,
   };
 
+  // Avoid checking props that are functions (and whose equality will always
+  // evaluate to false. See react-immutable-pure-component for usage.
+  updateOnProps = [
+    'status',
+    'me',
+    'withDismiss',
+  ]
+
   handleReplyClick = () => {
     this.props.onReply(this.props.status, this.context.router);
   }