mirror of https://github.com/vector-im/riot-web
Instead of listening for view_room, use a callback
But make sure that nothing other than the callback is done when RoomTile is clicked.pull/21833/head
parent
20fa36325f
commit
bf348a0f78
|
@ -28,28 +28,23 @@ export default class CreateOrReuseChatDialog extends React.Component {
|
|||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this._onNewDMClick = this._onNewDMClick.bind(this);
|
||||
this.dispatcherRef = dis.register(this._onAction.bind(this));
|
||||
this.onNewDMClick = this.onNewDMClick.bind(this);
|
||||
this.onRoomTileClick = this.onRoomTileClick.bind(this);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
dis.unregister(this.dispatcherRef);
|
||||
}
|
||||
|
||||
_onAction(payload) {
|
||||
switch(payload.action) {
|
||||
case 'view_room':
|
||||
this.props.onFinished(true);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
_onNewDMClick() {
|
||||
onNewDMClick() {
|
||||
createRoom({dmUserId: this.props.userId});
|
||||
this.props.onFinished(true);
|
||||
}
|
||||
|
||||
onRoomTileClick(roomId) {
|
||||
dis.dispatch({
|
||||
action: 'view_room',
|
||||
room_id: roomId,
|
||||
});
|
||||
this.props.onFinished(true);
|
||||
}
|
||||
|
||||
render() {
|
||||
const client = MatrixClientPeg.get();
|
||||
|
||||
|
@ -74,6 +69,7 @@ export default class CreateOrReuseChatDialog extends React.Component {
|
|||
unread={Unread.doesRoomHaveUnreadMessages(room)}
|
||||
highlight={highlight}
|
||||
isInvite={me.membership == "invite"}
|
||||
onClick={this.onRoomTileClick}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
@ -85,7 +81,7 @@ export default class CreateOrReuseChatDialog extends React.Component {
|
|||
});
|
||||
const startNewChat = <AccessibleButton
|
||||
className="mx_MemberInfo_createRoom"
|
||||
onClick={this._onNewDMClick}
|
||||
onClick={this.onNewDMClick}
|
||||
>
|
||||
<div className="mx_RoomTile_avatar">
|
||||
<img src="img/create-big.svg" width="26" height="26" />
|
||||
|
|
|
@ -553,6 +553,13 @@ module.exports = WithMatrixClient(React.createClass({
|
|||
Modal.createDialog(ImageView, params, "mx_Dialog_lightbox");
|
||||
},
|
||||
|
||||
onRoomTileClick(roomId) {
|
||||
dis.dispatch({
|
||||
action: 'view_room',
|
||||
room_id: roomId,
|
||||
});
|
||||
},
|
||||
|
||||
_renderDevices: function() {
|
||||
if (!this._enableDevices) {
|
||||
return null;
|
||||
|
@ -613,6 +620,7 @@ module.exports = WithMatrixClient(React.createClass({
|
|||
unread={Unread.doesRoomHaveUnreadMessages(room)}
|
||||
highlight={highlight}
|
||||
isInvite={me.membership == "invite"}
|
||||
onClick={this.onRoomTileClick}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -101,12 +101,8 @@ module.exports = React.createClass({
|
|||
},
|
||||
|
||||
onClick: function() {
|
||||
dis.dispatch({
|
||||
action: 'view_room',
|
||||
room_id: this.props.room.roomId,
|
||||
});
|
||||
if (this.props.onClick) {
|
||||
this.props.onClick();
|
||||
this.props.onClick(this.props.room.roomId);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue