Add separate dialog for recovery method removed

The "New Recovery Method" dialog would show if either the recovery method had
been changed or removed, but the dialog text didn't make much sense for the
removed case.

This adds a separate dialog customized for the removed case.

Fixes https://github.com/vector-im/riot-web/issues/8046.
This commit is contained in:
J. Ryan Stinnett 2019-01-10 15:13:44 -06:00
parent 2bd4579d0b
commit 35af3fc6f7
6 changed files with 114 additions and 17 deletions

View file

@ -1447,10 +1447,21 @@ export default React.createClass({
break;
}
});
cli.on("crypto.keyBackupFailed", () => {
Modal.createTrackedDialogAsync('New Recovery Method', 'New Recovery Method',
import('../../async-components/views/dialogs/keybackup/NewRecoveryMethodDialog'),
);
cli.on("crypto.keyBackupFailed", (errcode) => {
switch (errcode) {
case 'M_NOT_FOUND':
Modal.createTrackedDialogAsync('Recovery Method Removed', 'Recovery Method Removed',
import('../../async-components/views/dialogs/keybackup/RecoveryMethodRemovedDialog'),
);
return;
case 'M_WRONG_ROOM_KEYS_VERSION':
Modal.createTrackedDialogAsync('New Recovery Method', 'New Recovery Method',
import('../../async-components/views/dialogs/keybackup/NewRecoveryMethodDialog'),
);
return;
default:
console.error(`Invalid key backup failure code: ${errcode}`);
}
});
// Fire the tinter right on startup to ensure the default theme is applied