diff options
author | Nolan Lawson <nolan@nolanlawson.com> | 2017-05-26 05:05:52 -0700 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-05-26 14:05:52 +0200 |
commit | b00cb2aed3634ad6624e144b99d538eb85c58c12 (patch) | |
tree | 2975b9811f64cf18e334734e74c202f20e0b69cb /app/javascript/mastodon/components/status_action_bar.js | |
parent | 7c67cb599713cfeec4bdcb5447f36718886da2be (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.js | 11 |
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); } |