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 (