attempt to incorporate more code #1

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2017-07-21 20:22:01 +01:00
parent 3859708114
commit e47e14ed19
No known key found for this signature in database
GPG Key ID: 0435A1D4BBD34D64
1 changed files with 5 additions and 37 deletions

View File

@ -16,6 +16,8 @@ limitations under the License.
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import UserSettingsStore from '../../UserSettingsStore';
import shouldHideEvent from '../../shouldHideEvent';
import dis from "../../dispatcher"; import dis from "../../dispatcher";
import sdk from '../../index'; import sdk from '../../index';
@ -90,12 +92,6 @@ module.exports = React.createClass({
// show timestamps always // show timestamps always
alwaysShowTimestamps: React.PropTypes.bool, alwaysShowTimestamps: React.PropTypes.bool,
// hide redacted events as per old behaviour
hideRedactions: React.PropTypes.bool,
// hide membership joins and parts
hideJoinLeaves: React.PropTypes.bool,
}, },
componentWillMount: function() { componentWillMount: function() {
@ -116,6 +112,8 @@ module.exports = React.createClass({
// Velocity requires // Velocity requires
this._readMarkerGhostNode = null; this._readMarkerGhostNode = null;
this._syncedSettings = UserSettingsStore.getSyncedSettings();
this._isMounted = true; this._isMounted = true;
}, },
@ -252,37 +250,7 @@ module.exports = React.createClass({
// Always show highlighted event // Always show highlighted event
if (this.props.highlightedEventId === mxEv.getId()) return true; if (this.props.highlightedEventId === mxEv.getId()) return true;
// Hide redactions if behaviour enabled return !shouldHideEvent(mxEv, this._syncedSettings);
if (mxEv.isRedacted() && this.props.hideRedactions) return false;
const isMemberEvent = mxEv.getType() === "m.room.member" && mxEv.getStateKey() !== undefined;
if (!isMemberEvent) {
return true; // bail early: all the checks below concern member events only
}
// TODO: These checks are done to make sure we're dealing with membership transitions not avatar changes / dupe joins
// These checks are also being done in TextForEvent and should really reside in the JS SDK as a helper function
const membership = mxEv.getContent().membership;
const prevMembership = mxEv.getPrevContent().membership;
if (membership === prevMembership && membership === "join") {
// join -> join : This happens when display names change / avatars are set / genuine dupe joins with no changes.
// Find out which we're dealing with.
if (mxEv.getPrevContent().displayname !== mxEv.getContent().displayname) {
return true; // display name changed
}
if (mxEv.getPrevContent().avatar_url !== mxEv.getContent().avatar_url) {
return true; // avatar url changed
}
// dupe join event, fall through to hide rules
}
// this only applies to joins/leaves not invites/kicks/bans
const isJoinOrLeave = membership === "join" || (membership === "leave" && mxEv.getStateKey() === mxEv.getSender());
const hideJoinLeavesGlobally = this.props.hideJoinLeaves;
if (isJoinOrLeave && hideJoinLeavesGlobally) {
return false;
}
return true;
}, },
_getEventTiles: function() { _getEventTiles: function() {