Mailspring/internal_packages/onboarding/lib/page-account-onboarding-success.jsx
Juan Tejada 0e19f4511e fix(auth): Properly wait for acct to be inited before adding to sidebar
Summary:
Previously, when adding an account, we waited for it to be completely loaded (which meant having fetched the folder list) before focusing it on the sidebar. This could take several seconds, so it made the app feel unresponsive or slow when adding an account.

Then, we changed the logic to wait an arbitrary amount of time to focus the newly added account in the sidebar, with the hope that it would be enough time to focus it correctly but that it wouldn't seem too long. This still caused the unwanted effect of focusing it before it had been fully loaded.

This commit changes the auth flow so that the onboarding shows a Success page until the newly added account is fully loaded, and only /then/ closes itself, focuses the main window, and allows the account to be correctly focused in the sidebar.

Test Plan: manual

Reviewers: halla, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3751
2017-01-24 07:34:18 -08:00

35 lines
1 KiB
JavaScript

import React, {Component, PropTypes} from 'react';
import {RetinaImg} from 'nylas-component-kit';
import AccountTypes from './account-types'
class AccountOnboardingSuccess extends Component { // eslint-disable-line
static displayName = 'AccountOnboardingSuccess'
static propTypes = {
accountInfo: PropTypes.object,
}
render() {
const {accountInfo} = this.props
const accountType = AccountTypes.find(a => a.type === accountInfo.type);
return (
<div className={`page account-setup AccountOnboardingSuccess`}>
<div className="logo-container">
<RetinaImg
style={{backgroundColor: accountType.color, borderRadius: 44}}
name={accountType.headerIcon}
mode={RetinaImg.Mode.ContentPreserve}
className="logo"
/>
</div>
<div>
<h2>Successfully connected to {accountType.displayName}!</h2>
<h3>Adding your account to Nylas Mail</h3>
</div>
</div>
)
}
}
export default AccountOnboardingSuccess