Fix email invites address-match checking
Riot was always saying the email address that the invite was sent to was not associated with your account. Two fixes here: 1. We mounted RoomPreviewBar with no invitedEmail prop and then changed the prop later, but RoomPreviewBar only checked for it on mount. Make sure we re-check when the props change. 2. Pass oobData through RoomPreviewBar because we need to pass it to the RoomAvatar for 3pid invites. https://github.com/vector-im/riot-web/issues/9816
This commit is contained in:
parent
1618813652
commit
9816fe0ed7
2 changed files with 16 additions and 1 deletions
|
@ -1551,6 +1551,7 @@ module.exports = React.createClass({
|
||||||
joining={this.state.joining}
|
joining={this.state.joining}
|
||||||
inviterName={inviterName}
|
inviterName={inviterName}
|
||||||
invitedEmail={invitedEmail}
|
invitedEmail={invitedEmail}
|
||||||
|
oobData={this.props.oobData}
|
||||||
room={this.state.room}
|
room={this.state.room}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1681,6 +1682,7 @@ module.exports = React.createClass({
|
||||||
joining={this.state.joining}
|
joining={this.state.joining}
|
||||||
inviterName={inviterName}
|
inviterName={inviterName}
|
||||||
invitedEmail={invitedEmail}
|
invitedEmail={invitedEmail}
|
||||||
|
oobData={this.props.oobData}
|
||||||
canPreview={this.state.canPeek}
|
canPreview={this.state.canPeek}
|
||||||
room={this.state.room}
|
room={this.state.room}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -54,6 +54,9 @@ module.exports = React.createClass({
|
||||||
// If invited by 3rd party invite, the email address the invite was sent to
|
// If invited by 3rd party invite, the email address the invite was sent to
|
||||||
invitedEmail: PropTypes.string,
|
invitedEmail: PropTypes.string,
|
||||||
|
|
||||||
|
// For third party invites, information passed about the room out-of-band
|
||||||
|
oobData: PropTypes.object,
|
||||||
|
|
||||||
// A standard client/server API error object. If supplied, indicates that the
|
// A standard client/server API error object. If supplied, indicates that the
|
||||||
// caller was unable to fetch details about the room for the given reason.
|
// caller was unable to fetch details about the room for the given reason.
|
||||||
error: PropTypes.object,
|
error: PropTypes.object,
|
||||||
|
@ -87,6 +90,16 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
componentWillMount: function() {
|
componentWillMount: function() {
|
||||||
|
this._checkInvitedEmail();
|
||||||
|
},
|
||||||
|
|
||||||
|
componentDidUpdate: function(prevProps, prevState) {
|
||||||
|
if (this.props.invitedEmail !== prevProps.invitedEmail || this.props.inviterName !== prevProps.inviterName) {
|
||||||
|
this._checkInvitedEmail();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_checkInvitedEmail: function() {
|
||||||
// If this is an invite and we've been told what email
|
// If this is an invite and we've been told what email
|
||||||
// address was invited, fetch the user's list of Threepids
|
// address was invited, fetch the user's list of Threepids
|
||||||
// so we can check them against the one that was invited
|
// so we can check them against the one that was invited
|
||||||
|
@ -335,7 +348,7 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
case MessageCase.Invite: {
|
case MessageCase.Invite: {
|
||||||
const RoomAvatar = sdk.getComponent("views.avatars.RoomAvatar");
|
const RoomAvatar = sdk.getComponent("views.avatars.RoomAvatar");
|
||||||
const avatar = <RoomAvatar room={this.props.room} />;
|
const avatar = <RoomAvatar room={this.props.room} oobData={this.props.oobData} />;
|
||||||
|
|
||||||
const inviteMember = this._getInviteMember();
|
const inviteMember = this._getInviteMember();
|
||||||
let inviterElement;
|
let inviterElement;
|
||||||
|
|
Loading…
Reference in a new issue