From 79d6491808ebe6ddeb8ffb78e664c05e64c2bc57 Mon Sep 17 00:00:00 2001 From: Ben Gotow Date: Sat, 3 Nov 2018 18:48:21 -0700 Subject: [PATCH] =?UTF-8?q?Add=20Yahoo=20app=20password=20note,=20include?= =?UTF-8?q?=20notes=20in=20=E2=80=9CView=20Log=E2=80=9D=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/lib/account-providers.es6 | 11 +++++++++++ .../lib/decorators/create-page-for-form.jsx | 11 +++++++++++ 2 files changed, 22 insertions(+) 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,