mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-17 14:05:04 +08:00
attempt to incorporate more code #1
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
3859708114
commit
e47e14ed19
@ -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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user