diff --git a/app/internal_packages/onboarding/lib/account-providers.es6 b/app/internal_packages/onboarding/lib/account-providers.es6 index 2cbd67b91..9b439386f 100644 --- a/app/internal_packages/onboarding/lib/account-providers.es6 +++ b/app/internal_packages/onboarding/lib/account-providers.es6 @@ -18,6 +18,17 @@ const AccountProviders = [ { provider: 'yahoo', displayName: 'Yahoo', + note: ( + + {localized('Important')}:{' '} + {localizedReactFragment( + 'Yahoo requires that you create a unique app password for email apps like Mailspring. Follow %@ to create one and then paste it below.', + + {localized('these instructions')} + + )} + + ), icon: 'ic-settings-account-yahoo.png', headerIcon: 'setup-icon-provider-yahoo.png', color: '#a76ead', diff --git a/app/internal_packages/onboarding/lib/decorators/create-page-for-form.jsx b/app/internal_packages/onboarding/lib/decorators/create-page-for-form.jsx index c0742b6e4..dcf0cc202 100644 --- a/app/internal_packages/onboarding/lib/decorators/create-page-for-form.jsx +++ b/app/internal_packages/onboarding/lib/decorators/create-page-for-form.jsx @@ -121,6 +121,7 @@ const CreatePageForForm = FormComponent => { onConnect = updatedAccount => { const account = updatedAccount || this.state.account; + const providerConfig = AccountProviders.find(({ provider }) => provider === account.provider); // warn users about authenticating a Gmail or Google Apps account via IMAP // and allow them to go back @@ -173,6 +174,16 @@ const CreatePageForForm = FormComponent => { } } + if (providerConfig.note) { + const node = document.createElement('div'); + ReactDOM.render(providerConfig.note, node); + let note = node.innerText; + const link = node.querySelector('a'); + if (link) { + note += '\n' + link.getAttribute('href'); + } + err.rawLog = note + '\n\n' + err.rawLog; + } this.setState({ errorMessage: err.message, errorStatusCode: err.statusCode,