show empty list as initial state instead of spinner

the spinner should only be shown when joined
pull/21833/head
Bruno Windels 2018-09-17 19:18:55 +02:00
parent 2ed414494f
commit c3914d3493
1 changed files with 7 additions and 7 deletions

View File

@ -34,9 +34,10 @@ module.exports = React.createClass({
getInitialState: function() { getInitialState: function() {
const cli = MatrixClientPeg.get(); const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) { if (cli.hasLazyLoadMembersEnabled()) {
return {loading: true}; // show an empty list
return this._getMembersState([]);
} else { } else {
return this._getMembersState(); return this._getMembersState(this.roomMembers());
} }
}, },
@ -46,6 +47,7 @@ module.exports = React.createClass({
if (cli.hasLazyLoadMembersEnabled()) { if (cli.hasLazyLoadMembersEnabled()) {
// true means will not show a spinner but the // true means will not show a spinner but the
// known members so far if not joined // known members so far if not joined
this._loadMembersIfNeeded(true);
cli.on("Room.myMembership", this.onMyMembership); cli.on("Room.myMembership", this.onMyMembership);
} else { } else {
this._listenForMembersChanges(); this._listenForMembersChanges();
@ -73,7 +75,6 @@ module.exports = React.createClass({
componentDidMount: async function() { componentDidMount: async function() {
this._mounted = true; this._mounted = true;
this._loadMembersIfNeeded(true);
}, },
componentWillUnmount: function() { componentWillUnmount: function() {
@ -104,18 +105,17 @@ module.exports = React.createClass({
await room.loadMembersIfNeeded(); await room.loadMembersIfNeeded();
} catch(ex) {/* already logged in RoomView */} } catch(ex) {/* already logged in RoomView */}
if (this._mounted) { if (this._mounted) {
this.setState(this._getMembersState()); this.setState(this._getMembersState(this.roomMembers()));
this._listenForMembersChanges(); this._listenForMembersChanges();
} }
} else if(initial) { } else if(initial) {
// show the members we've got // show the members we've got
this.setState(this._getMembersState()); this.setState(this._getMembersState(this.roomMembers()));
} }
} }
}, },
_getMembersState: function() { _getMembersState: function(members) {
const members = this.roomMembers();
// set the state after determining _showPresence to make sure it's // set the state after determining _showPresence to make sure it's
// taken into account while rerendering // taken into account while rerendering
return { return {