mirror of
https://github.com/element-hq/element-web
synced 2024-11-27 03:36:07 +03:00
Fix double-spinner
On registering, we showed a spinner, and then another spinner on top of the spinner, which led to an interesting spinner-in-box effect. Suppress the second type of spinner when we know we already have one.
This commit is contained in:
parent
4ce72fdffa
commit
4c036c98ee
2 changed files with 7 additions and 2 deletions
|
@ -1159,6 +1159,7 @@ export default React.createClass({
|
||||||
dmUserId: this.props.config.welcomeUserId,
|
dmUserId: this.props.config.welcomeUserId,
|
||||||
// Only view the welcome user if we're NOT looking at a room
|
// Only view the welcome user if we're NOT looking at a room
|
||||||
andView: !this.state.currentRoomId,
|
andView: !this.state.currentRoomId,
|
||||||
|
spinner: false, // we're already showing one: we don't need another one
|
||||||
});
|
});
|
||||||
// This is a bit of a hack, but since the deduplication relies
|
// This is a bit of a hack, but since the deduplication relies
|
||||||
// on m.direct being up to date, we need to force a sync
|
// on m.direct being up to date, we need to force a sync
|
||||||
|
|
|
@ -30,12 +30,15 @@ import {getAddressType} from "./UserAddress";
|
||||||
* @param {object=} opts parameters for creating the room
|
* @param {object=} opts parameters for creating the room
|
||||||
* @param {string=} opts.dmUserId If specified, make this a DM room for this user and invite them
|
* @param {string=} opts.dmUserId If specified, make this a DM room for this user and invite them
|
||||||
* @param {object=} opts.createOpts set of options to pass to createRoom call.
|
* @param {object=} opts.createOpts set of options to pass to createRoom call.
|
||||||
|
* @param {bool=} opts.spinner True to show a modal spinner while the room is created.
|
||||||
|
* Default: True
|
||||||
*
|
*
|
||||||
* @returns {Promise} which resolves to the room id, or null if the
|
* @returns {Promise} which resolves to the room id, or null if the
|
||||||
* action was aborted or failed.
|
* action was aborted or failed.
|
||||||
*/
|
*/
|
||||||
function createRoom(opts) {
|
function createRoom(opts) {
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
|
if (opts.spinner === undefined) opts.spinner = true;
|
||||||
|
|
||||||
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||||
const Loader = sdk.getComponent("elements.Spinner");
|
const Loader = sdk.getComponent("elements.Spinner");
|
||||||
|
@ -87,11 +90,12 @@ function createRoom(opts) {
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const modal = Modal.createDialog(Loader, null, 'mx_Dialog_spinner');
|
let modal;
|
||||||
|
if (opts.spinner) modal = Modal.createDialog(Loader, null, 'mx_Dialog_spinner');
|
||||||
|
|
||||||
let roomId;
|
let roomId;
|
||||||
return client.createRoom(createOpts).finally(function() {
|
return client.createRoom(createOpts).finally(function() {
|
||||||
modal.close();
|
if (modal) modal.close();
|
||||||
}).then(function(res) {
|
}).then(function(res) {
|
||||||
roomId = res.room_id;
|
roomId = res.room_id;
|
||||||
if (opts.dmUserId) {
|
if (opts.dmUserId) {
|
||||||
|
|
Loading…
Reference in a new issue