diff --git a/src/components/views/settings/CrossSigningPanel.js b/src/components/views/settings/CrossSigningPanel.js index 06c4783c4a..ccab886f17 100644 --- a/src/components/views/settings/CrossSigningPanel.js +++ b/src/components/views/settings/CrossSigningPanel.js @@ -36,6 +36,8 @@ export default class CrossSigningPanel extends React.PureComponent { componentDidMount() { const cli = MatrixClientPeg.get(); cli.on("accountData", this.onAccountData); + cli.on("userTrustStatusChanged", this.onStatusChanged); + cli.on("crossSigning.keysChanged", this.onStatusChanged); } componentWillUnmount() { @@ -43,6 +45,8 @@ export default class CrossSigningPanel extends React.PureComponent { const cli = MatrixClientPeg.get(); if (!cli) return; cli.removeListener("accountData", this.onAccountData); + cli.removeListener("userTrustStatusChanged", this.onStatusChanged); + cli.removeListener("crossSigning.keysChanged", this.onStatusChanged); } onAccountData = (event) => { @@ -52,6 +56,10 @@ export default class CrossSigningPanel extends React.PureComponent { } }; + onStatusChanged = () => { + this.setState(this._getUpdatedStatus()); + }; + _getUpdatedStatus() { // XXX: Add public accessors if we keep this around in production const cli = MatrixClientPeg.get();