From c7aab8f50d1636d8e9edba6295fe96ba66c2e8c4 Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Fri, 18 Jun 2021 15:45:41 -0300 Subject: [PATCH 1/4] [FIX] Conditional to compare the server version and filter or not the system messages --- app/views/RoomView/List/index.js | 13 ++++++++++--- app/views/RoomView/index.js | 5 ++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/views/RoomView/List/index.js b/app/views/RoomView/List/index.js index 19a8ccb901f..23e1b9e54ff 100644 --- a/app/views/RoomView/List/index.js +++ b/app/views/RoomView/List/index.js @@ -16,6 +16,7 @@ import { themes } from '../../../constants/colors'; import List from './List'; import NavBottomFAB from './NavBottomFAB'; import debounce from '../../../utils/debounce'; +import { compareServerVersion, methods } from '../../../lib/utils'; const QUERY_SIZE = 50; @@ -42,7 +43,8 @@ class ListContainer extends React.Component { tunread: PropTypes.array, ignored: PropTypes.array, navigation: PropTypes.object, - showMessageInMainThread: PropTypes.bool + showMessageInMainThread: PropTypes.bool, + serverVersion: PropTypes.string }; constructor(props) { @@ -132,7 +134,9 @@ class ListContainer extends React.Component { query = async() => { this.count += QUERY_SIZE; - const { rid, tmid, showMessageInMainThread } = this.props; + const { + rid, tmid, showMessageInMainThread, serverVersion + } = this.props; const db = database.active; // handle servers with version < 3.0.0 @@ -186,7 +190,10 @@ class ListContainer extends React.Component { if (tmid && this.thread) { messages = [...messages, this.thread]; } - messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); + + if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThanOrEqualTo)) { + messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); + } if (this.mounted) { this.setState({ messages }, () => this.update()); diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index 13de89c87d9..b23da98b397 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -105,6 +105,7 @@ class RoomView extends React.Component { Message_Read_Receipt_Enabled: PropTypes.bool, Hide_System_Messages: PropTypes.array, baseUrl: PropTypes.string, + serverVersion: PropTypes.string, customEmojis: PropTypes.object, isMasterDetail: PropTypes.bool, theme: PropTypes.string, @@ -1101,7 +1102,7 @@ class RoomView extends React.Component { room, reactionsModalVisible, selectedMessage, loading, reacting, showingBlockingLoader } = this.state; const { - user, baseUrl, theme, navigation, Hide_System_Messages, width, height + user, baseUrl, theme, navigation, Hide_System_Messages, width, height, serverVersion } = this.props; const { rid, t, sysMes, bannerClosed, announcement @@ -1135,6 +1136,7 @@ class RoomView extends React.Component { navigation={navigation} hideSystemMessages={Array.isArray(sysMes) ? sysMes : Hide_System_Messages} showMessageInMainThread={user.showMessageInMainThread} + serverVersion={serverVersion} /> {this.renderFooter()} {this.renderActions()} @@ -1179,6 +1181,7 @@ const mapStateToProps = state => ({ Message_TimeFormat: state.settings.Message_TimeFormat, customEmojis: state.customEmojis, baseUrl: state.server.server, + serverVersion: state.server.version, Message_Read_Receipt_Enabled: state.settings.Message_Read_Receipt_Enabled, Hide_System_Messages: state.settings.Hide_System_Messages }); From 47df7a9f6d2bccd9cc16f5b4fd072c9fbe7d37a8 Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Tue, 6 Jul 2021 17:33:39 -0300 Subject: [PATCH 2/4] instead of lowerThanOrEqualTo using lowerThan --- app/views/RoomView/List/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/RoomView/List/index.js b/app/views/RoomView/List/index.js index 974eb951f39..fd6852f1bad 100644 --- a/app/views/RoomView/List/index.js +++ b/app/views/RoomView/List/index.js @@ -191,7 +191,7 @@ class ListContainer extends React.Component { messages = [...messages, this.thread]; } - if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThanOrEqualTo)) { + if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThan)) { messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); } From f6f39cce6a59a9be54c11b49e4bd3577fc0e7749 Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Tue, 6 Jul 2021 17:41:56 -0300 Subject: [PATCH 3/4] To do a reactive message list --- app/views/RoomView/List/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/views/RoomView/List/index.js b/app/views/RoomView/List/index.js index fd6852f1bad..a8450435334 100644 --- a/app/views/RoomView/List/index.js +++ b/app/views/RoomView/List/index.js @@ -191,7 +191,11 @@ class ListContainer extends React.Component { messages = [...messages, this.thread]; } - if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThan)) { + /** + * Since 3.16.0 server version, the backend don't response with messages if + * hide system message is enabled + */ + if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThan) || hideSystemMessages.length) { messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); } From aa8848c878ed0394e654cdeb50c25c1121975bfc Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Tue, 5 Oct 2021 11:36:02 -0300 Subject: [PATCH 4/4] minor tweaks --- app/views/RoomView/List/index.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/app/views/RoomView/List/index.js b/app/views/RoomView/List/index.js index 4a3b8add844..0db6c8b698a 100644 --- a/app/views/RoomView/List/index.js +++ b/app/views/RoomView/List/index.js @@ -14,10 +14,9 @@ import { animateNextTransition } from '../../../utils/layoutAnimation'; import ActivityIndicator from '../../../containers/ActivityIndicator'; import { themes } from '../../../constants/colors'; import debounce from '../../../utils/debounce'; +import { compareServerVersion, methods } from '../../../lib/utils'; import List from './List'; import NavBottomFAB from './NavBottomFAB'; -import debounce from '../../../utils/debounce'; -import { compareServerVersion, methods } from '../../../lib/utils'; const QUERY_SIZE = 50; @@ -134,9 +133,7 @@ class ListContainer extends React.Component { query = async () => { this.count += QUERY_SIZE; - const { - rid, tmid, showMessageInMainThread, serverVersion - } = this.props; + const { rid, tmid, showMessageInMainThread, serverVersion } = this.props; const db = database.active; // handle servers with version < 3.0.0 @@ -173,19 +170,18 @@ class ListContainer extends React.Component { if (rid) { this.unsubscribeMessages(); - this.messagesSubscription = this.messagesObservable - .subscribe((messages) => { - if (tmid && this.thread) { - messages = [...messages, this.thread]; - } + this.messagesSubscription = this.messagesObservable.subscribe(messages => { + if (tmid && this.thread) { + messages = [...messages, this.thread]; + } - /** - * Since 3.16.0 server version, the backend don't response with messages if - * hide system message is enabled - */ - if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThan) || hideSystemMessages.length) { - messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); - } + /** + * Since 3.16.0 server version, the backend don't response with messages if + * hide system message is enabled + */ + if (compareServerVersion(serverVersion, '3.16.0', methods.lowerThan) || hideSystemMessages.length) { + messages = messages.filter(m => !m.t || !hideSystemMessages?.includes(m.t)); + } if (this.mounted) { this.setState({ messages }, () => this.update());