Only use DNDRoomTile for editable sub lists

Otherwise, the DND tile will expect to be within a Droppable,
which is not supported by react-beautiful-dnd. This was causing
errors when receiving an invite.

Fixes #6144
This commit is contained in:
Luke Barnard 2018-02-16 11:02:52 +00:00
parent 332640c4ba
commit 0605d96014
1 changed files with 21 additions and 20 deletions

View File

@ -194,26 +194,27 @@ var RoomSubList = React.createClass({
}, },
makeRoomTiles: function() { makeRoomTiles: function() {
var self = this; const DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile");
var DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile"); const RoomTile = sdk.getComponent("rooms.RoomTile");
return this.state.sortedList.map(function(room, index) { return this.state.sortedList.map((room, index) => {
// XXX: is it evil to pass in self as a prop to RoomTile? // XXX: is it evil to pass in this as a prop to RoomTile? Yes.
return (
<DNDRoomTile // We should only use <DNDRoomTile /> when editable
index={index} // For DND const RoomTileComponent = this.props.editable ? DNDRoomTile : RoomTile;
room={ room } return <RoomTileComponent
roomSubList={ self } index={index} // For DND
tagName={self.props.tagName} room={room}
key={ room.roomId } roomSubList={this}
collapsed={ self.props.collapsed || false} tagName={this.props.tagName}
unread={ Unread.doesRoomHaveUnreadMessages(room) } key={room.roomId}
highlight={ room.getUnreadNotificationCount('highlight') > 0 || self.props.isInvite } collapsed={this.props.collapsed || false}
isInvite={ self.props.isInvite } unread={Unread.doesRoomHaveUnreadMessages(room)}
refreshSubList={ self._updateSubListCount } highlight={room.getUnreadNotificationCount('highlight') > 0 || this.props.isInvite}
incomingCall={ null } isInvite={this.props.isInvite}
onClick={ self.onRoomTileClick } refreshSubList={this._updateSubListCount}
/> incomingCall={null}
); onClick={this.onRoomTileClick}
/>;
}); });
}, },