From 7a42caa326a775ab37e9360aa956525281a93c57 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Tue, 21 Apr 2020 22:25:37 +0200 Subject: [PATCH 1/7] Fixed Unignore state variable naming missmatch Signed-off-by: Agusti Bau --- .../settings/tabs/user/SecurityUserSettingsTab.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 1cde5d6f87..72ec30cdb1 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -89,13 +89,13 @@ export default class SecurityUserSettingsTab extends React.Component { // Don't use this.state to get the ignored user list as it might be // ever so slightly outdated. Instead, prefer to get a fresh list and // update that. - const ignoredUsers = MatrixClientPeg.get().getIgnoredUsers(); - const index = ignoredUsers.indexOf(userId); + const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); + const index = ignoredUserIds.indexOf(userId); if (index !== -1) { - ignoredUsers.splice(index, 1); - MatrixClientPeg.get().setIgnoredUsers(ignoredUsers); + ignoredUserIds.splice(index, 1); + MatrixClientPeg.get().setIgnoredUsers(ignoredUserIds); } - this.setState({ignoredUsers}); + this.setState({ignoredUserIds}); }; _getInvitedRooms = () => { From 47708ca1275f019a3842011fbee300cf825f4eb4 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 01:31:35 +0200 Subject: [PATCH 2/7] Sync settings ignoredUsers with global state Signed-off-by: Agusti Bau --- .../tabs/user/SecurityUserSettingsTab.js | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 72ec30cdb1..c9f3c73905 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -25,6 +25,7 @@ import Analytics from "../../../../../Analytics"; import Modal from "../../../../../Modal"; import * as sdk from "../../../../.."; import {sleep} from "../../../../../utils/promise"; +import dis from "../../../../../dispatcher" export class IgnoredUser extends React.Component { static propTypes = { @@ -61,6 +62,23 @@ export default class SecurityUserSettingsTab extends React.Component { managingInvites: false, invitedRoomAmt: invitedRooms.length, }; + + this._onAction = this._onAction.bind(this); + } + + _onAction({action}) { + if (action === "ignore_state_changed"){ + const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); + this.setState({ignoredUserIds}) + } + } + + componentDidMount() { + this.dispatcherRef = dis.register(this._onAction) + } + + componentWillUnmount() { + dis.unregister(this.dispatcherRef); } _updateBlacklistDevicesFlag = (checked) => { @@ -89,13 +107,13 @@ export default class SecurityUserSettingsTab extends React.Component { // Don't use this.state to get the ignored user list as it might be // ever so slightly outdated. Instead, prefer to get a fresh list and // update that. - const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); + const ignoredUserIds = this.state.ignoredUserIds; const index = ignoredUserIds.indexOf(userId); if (index !== -1) { ignoredUserIds.splice(index, 1); MatrixClientPeg.get().setIgnoredUsers(ignoredUserIds); } - this.setState({ignoredUserIds}); + }; _getInvitedRooms = () => { From 08bac716d5f1690e11b9f5585bac3df4f15c2652 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 16:00:27 +0200 Subject: [PATCH 3/7] Disabled unignore button when unignoring in process Signed-off-by: Agusti Bau --- .../tabs/user/SecurityUserSettingsTab.js | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index c9f3c73905..a5ef16cc04 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -31,6 +31,7 @@ export class IgnoredUser extends React.Component { static propTypes = { userId: PropTypes.string.isRequired, onUnignored: PropTypes.func.isRequired, + inProgress: PropTypes.bool.isRequired }; _onUnignoreClicked = (e) => { @@ -41,7 +42,7 @@ export class IgnoredUser extends React.Component { const id = `mx_SecurityUserSettingsTab_ignoredUser_${this.props.userId}`; return (
- + { _t('Unignore') } { this.props.userId } @@ -59,6 +60,7 @@ export default class SecurityUserSettingsTab extends React.Component { this.state = { ignoredUserIds: MatrixClientPeg.get().getIgnoredUsers(), + waitingUnignored: [], managingInvites: false, invitedRoomAmt: invitedRooms.length, }; @@ -69,7 +71,13 @@ export default class SecurityUserSettingsTab extends React.Component { _onAction({action}) { if (action === "ignore_state_changed"){ const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); - this.setState({ignoredUserIds}) + const newWaitingUnignored = this.state.waitingUnignored.filter(e=> ignoredUserIds.includes(e)) + console.log("-------------") + console.log("Got new ignored users", ignoredUserIds) + console.log("We were waiting for", this.state.waitingUnignored) + console.log("Now we wait for", newWaitingUnignored) + console.log("-------------") + this.setState({ignoredUserIds, waitingUnignored: newWaitingUnignored}) } } @@ -104,14 +112,20 @@ export default class SecurityUserSettingsTab extends React.Component { }; _onUserUnignored = async (userId) => { - // Don't use this.state to get the ignored user list as it might be - // ever so slightly outdated. Instead, prefer to get a fresh list and - // update that. - const ignoredUserIds = this.state.ignoredUserIds; - const index = ignoredUserIds.indexOf(userId); + + const {ignoredUserIds, waitingUnignored} = this.state + console.log("--------GO IGNORE---") + console.log("ignored:", ignoredUserIds) + console.log("waiting for:", waitingUnignored) + const currentlyIgnoredUserIds = ignoredUserIds.filter(e=> !waitingUnignored.includes(e)); + console.log("currentlyIgnored:", currentlyIgnoredUserIds) + + const index = currentlyIgnoredUserIds.indexOf(userId); if (index !== -1) { - ignoredUserIds.splice(index, 1); - MatrixClientPeg.get().setIgnoredUsers(ignoredUserIds); + currentlyIgnoredUserIds.splice(index, 1); + this.setState(({waitingUnignored})=>({waitingUnignored:[...waitingUnignored, userId]})) + console.log("Sending to server", currentlyIgnoredUserIds) + MatrixClientPeg.get().setIgnoredUsers(currentlyIgnoredUserIds); } }; @@ -219,10 +233,16 @@ export default class SecurityUserSettingsTab extends React.Component { } _renderIgnoredUsers() { - if (!this.state.ignoredUserIds || this.state.ignoredUserIds.length === 0) return null; + const {waitingUnignored, ignoredUserIds} = this.state; - const userIds = this.state.ignoredUserIds - .map((u) => ); + if (!ignoredUserIds || ignoredUserIds.length === 0) return null; + + + console.log("Rendering, waiting", waitingUnignored) + console.log("Rendering, ignored", ignoredUserIds) + + const userIds = ignoredUserIds + .map((u) => ); return (
From cd87124e0f2ddd30213f071814f36b55cc183c64 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 16:16:49 +0200 Subject: [PATCH 4/7] removed console logs Signed-off-by: Agusti Bau --- .../tabs/user/SecurityUserSettingsTab.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index a5ef16cc04..187ad0fb93 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -68,15 +68,12 @@ export default class SecurityUserSettingsTab extends React.Component { this._onAction = this._onAction.bind(this); } + + _onAction({action}) { if (action === "ignore_state_changed"){ const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); const newWaitingUnignored = this.state.waitingUnignored.filter(e=> ignoredUserIds.includes(e)) - console.log("-------------") - console.log("Got new ignored users", ignoredUserIds) - console.log("We were waiting for", this.state.waitingUnignored) - console.log("Now we wait for", newWaitingUnignored) - console.log("-------------") this.setState({ignoredUserIds, waitingUnignored: newWaitingUnignored}) } } @@ -114,17 +111,12 @@ export default class SecurityUserSettingsTab extends React.Component { _onUserUnignored = async (userId) => { const {ignoredUserIds, waitingUnignored} = this.state - console.log("--------GO IGNORE---") - console.log("ignored:", ignoredUserIds) - console.log("waiting for:", waitingUnignored) const currentlyIgnoredUserIds = ignoredUserIds.filter(e=> !waitingUnignored.includes(e)); - console.log("currentlyIgnored:", currentlyIgnoredUserIds) const index = currentlyIgnoredUserIds.indexOf(userId); if (index !== -1) { currentlyIgnoredUserIds.splice(index, 1); this.setState(({waitingUnignored})=>({waitingUnignored:[...waitingUnignored, userId]})) - console.log("Sending to server", currentlyIgnoredUserIds) MatrixClientPeg.get().setIgnoredUsers(currentlyIgnoredUserIds); } @@ -237,10 +229,6 @@ export default class SecurityUserSettingsTab extends React.Component { if (!ignoredUserIds || ignoredUserIds.length === 0) return null; - - console.log("Rendering, waiting", waitingUnignored) - console.log("Rendering, ignored", ignoredUserIds) - const userIds = ignoredUserIds .map((u) => ); From ff3272061cc994412892181fd55cbb0e44737c79 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 16:44:47 +0200 Subject: [PATCH 5/7] Fixed linter errors Signed-off-by: Agusti Bau --- .../tabs/user/SecurityUserSettingsTab.js | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 187ad0fb93..686873d6b0 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -25,13 +25,13 @@ import Analytics from "../../../../../Analytics"; import Modal from "../../../../../Modal"; import * as sdk from "../../../../.."; import {sleep} from "../../../../../utils/promise"; -import dis from "../../../../../dispatcher" +import dis from "../../../../../dispatcher"; export class IgnoredUser extends React.Component { static propTypes = { userId: PropTypes.string.isRequired, onUnignored: PropTypes.func.isRequired, - inProgress: PropTypes.bool.isRequired + inProgress: PropTypes.bool.isRequired, }; _onUnignoreClicked = (e) => { @@ -69,17 +69,16 @@ export default class SecurityUserSettingsTab extends React.Component { } - _onAction({action}) { - if (action === "ignore_state_changed"){ - const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); - const newWaitingUnignored = this.state.waitingUnignored.filter(e=> ignoredUserIds.includes(e)) - this.setState({ignoredUserIds, waitingUnignored: newWaitingUnignored}) + if (action === "ignore_state_changed") { + const ignoredUserIds = MatrixClientPeg.get().getIgnoredUsers(); + const newWaitingUnignored = this.state.waitingUnignored.filter(e=> ignoredUserIds.includes(e)); + this.setState({ignoredUserIds, waitingUnignored: newWaitingUnignored}); } } componentDidMount() { - this.dispatcherRef = dis.register(this._onAction) + this.dispatcherRef = dis.register(this._onAction); } componentWillUnmount() { @@ -109,17 +108,15 @@ export default class SecurityUserSettingsTab extends React.Component { }; _onUserUnignored = async (userId) => { - - const {ignoredUserIds, waitingUnignored} = this.state + const {ignoredUserIds, waitingUnignored} = this.state; const currentlyIgnoredUserIds = ignoredUserIds.filter(e=> !waitingUnignored.includes(e)); const index = currentlyIgnoredUserIds.indexOf(userId); if (index !== -1) { currentlyIgnoredUserIds.splice(index, 1); - this.setState(({waitingUnignored})=>({waitingUnignored:[...waitingUnignored, userId]})) + this.setState(({waitingUnignored})=>({waitingUnignored: [...waitingUnignored, userId]})); MatrixClientPeg.get().setIgnoredUsers(currentlyIgnoredUserIds); } - }; _getInvitedRooms = () => { @@ -230,7 +227,12 @@ export default class SecurityUserSettingsTab extends React.Component { if (!ignoredUserIds || ignoredUserIds.length === 0) return null; const userIds = ignoredUserIds - .map((u) => ); + .map((u) => ); return (
From 5163232081b3a5da35175ea659072175cc3c898c Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 20:03:13 +0200 Subject: [PATCH 6/7] Update src/components/views/settings/tabs/user/SecurityUserSettingsTab.js Co-Authored-By: Michael Telatynski <7t3chguy@googlemail.com> --- .../views/settings/tabs/user/SecurityUserSettingsTab.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 686873d6b0..5260fed1b5 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -114,7 +114,7 @@ export default class SecurityUserSettingsTab extends React.Component { const index = currentlyIgnoredUserIds.indexOf(userId); if (index !== -1) { currentlyIgnoredUserIds.splice(index, 1); - this.setState(({waitingUnignored})=>({waitingUnignored: [...waitingUnignored, userId]})); + this.setState(({waitingUnignored}) => ({waitingUnignored: [...waitingUnignored, userId]})); MatrixClientPeg.get().setIgnoredUsers(currentlyIgnoredUserIds); } }; From 2471b3c1004509be2ffe3653287476ce5722bba6 Mon Sep 17 00:00:00 2001 From: Agusti Bau Date: Wed, 22 Apr 2020 20:03:22 +0200 Subject: [PATCH 7/7] Update src/components/views/settings/tabs/user/SecurityUserSettingsTab.js Co-Authored-By: Michael Telatynski <7t3chguy@googlemail.com> --- .../views/settings/tabs/user/SecurityUserSettingsTab.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 5260fed1b5..6c9309f38a 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -109,7 +109,7 @@ export default class SecurityUserSettingsTab extends React.Component { _onUserUnignored = async (userId) => { const {ignoredUserIds, waitingUnignored} = this.state; - const currentlyIgnoredUserIds = ignoredUserIds.filter(e=> !waitingUnignored.includes(e)); + const currentlyIgnoredUserIds = ignoredUserIds.filter(e => !waitingUnignored.includes(e)); const index = currentlyIgnoredUserIds.indexOf(userId); if (index !== -1) {