Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-2206: Onboarding - Step 1 - Create Account #639

Merged
merged 36 commits into from Dec 7, 2020
Merged
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
834bb52
Make form
benstrumeyer Dec 1, 2020
3300d83
Add skip and learn more links
benstrumeyer Dec 1, 2020
5911f47
Set arrow up/down depending on expanded state
benstrumeyer Dec 1, 2020
a56094f
Make FAQ
benstrumeyer Dec 1, 2020
f623f22
Make list responsive
benstrumeyer Dec 1, 2020
9d641f9
Adjust padding of FAQContainer to scroll onto nice spot
benstrumeyer Dec 1, 2020
f9ad55e
Make sure promoString checkbox text does not wrap
benstrumeyer Dec 1, 2020
13d10ee
Add privacy policy link
benstrumeyer Dec 1, 2020
11f908c
Make privacy policy link more responsive
benstrumeyer Dec 1, 2020
6cfcdce
Make BrowserLogInForm and style responsively
benstrumeyer Dec 2, 2020
9f024a5
Refactor Create Account form into a component
benstrumeyer Dec 2, 2020
0371513
Create BrowserCreateAccountFormContainer and add handlers
benstrumeyer Dec 2, 2020
7a04bd3
Add error handling to legal consent label
benstrumeyer Dec 2, 2020
31b8e8e
Remove privacy policy link if learn more is not expanded
benstrumeyer Dec 2, 2020
2071175
Add handlers for log in view and replace strings
benstrumeyer Dec 2, 2020
74b0a41
Add handlers for forgot password and throttle it
benstrumeyer Dec 2, 2020
7d9bd47
Lower throttle time in case user enters a wrong email
benstrumeyer Dec 2, 2020
ba6f3c9
Make updates checkbox work
benstrumeyer Dec 2, 2020
c098331
Add signed in view
benstrumeyer Dec 2, 2020
1087c46
Change spacing of title and subtitle for small screens
benstrumeyer Dec 2, 2020
b8c2629
Update create account design for small screens
benstrumeyer Dec 2, 2020
e187609
Center skip link on small screens
benstrumeyer Dec 2, 2020
a6e9257
Decrease spacing for small sreens on already have account/create acco…
benstrumeyer Dec 2, 2020
f715cf7
Decrease width of faqDescription items and privacy policy link
benstrumeyer Dec 2, 2020
8b6838d
Open privacy policy link in new tab
benstrumeyer Dec 2, 2020
817ce0b
Add confirm password functionality
benstrumeyer Dec 4, 2020
dfc6ec9
Update passwords not match string
benstrumeyer Dec 4, 2020
7ff259f
Add global email preferences to user object on account creation success
benstrumeyer Dec 4, 2020
143cce8
Hold input fields in place when error messages appear
benstrumeyer Dec 4, 2020
136ef0d
Merge branch 'ghostery-browser-intro-hub' into GH-2206
benstrumeyer Dec 4, 2020
eda38ca
Rename components
benstrumeyer Dec 4, 2020
91badf5
Add propTypes
benstrumeyer Dec 5, 2020
1b24823
Update comments
benstrumeyer Dec 5, 2020
6ce6eca
Remove newline
benstrumeyer Dec 5, 2020
44518ad
Update confirm password string
benstrumeyer Dec 5, 2020
6ff20ca
Add comments and minor refactors
benstrumeyer Dec 5, 2020
File filter
Filter file types
Jump to
Jump to file
Failed to load files.

Always

Just for now

Merge branch 'ghostery-browser-intro-hub' into GH-2206

  • Loading branch information
benstrumeyer committed Dec 4, 2020
commit 136ef0d8a66860522fa28421e3ebf0b13412d013
@@ -1737,66 +1737,99 @@
"hub_create_account_toast_error": {
"message": "That email address is already in use. Please choose another."
},
"hub_browser_create_a_ghostery_account": {
"ghostery_browser_hub_onboarding_page_title": {
"message": "Ghostery Browser Hub - Welcome"
},
"ghostery_browser_hub_onboarding_header_title_login": {
"message": "Ghostery Browser Hub - Login"
},
"ghostery_browser_hub_onboarding_header_title_block_settings": {
"message": "Ghostery Browser Hub - Block Settings"
},
"ghostery_browser_hub_onboarding_header_title_search_choice": {
"message": "Ghostery Browser Hub - Search Choice"
},
"ghostery_browser_hub_onboarding_header_title_plan_choices": {
"message": "Ghostery Browser Hub - Plan Choices"
},
"ghostery_browser_hub_onboarding_welcome": {
"message": "Welcome to Ghostery Browser"
},
"ghostery_browser_hub_onboarding_lets_begin": {
"message": "Let's begin by choosing your privacy settings. This will be quick, we promise!"
},
"ghostery_browser_hub_onboarding_lets_do_this": {
"message": "Let's do this"
},
"ghostery_browser_hub_onboarding_create_a_ghostery_account": {
"message": "Create a Ghostery Account"
},
"hub_browser_sync_settings": {
"ghostery_browser_hub_onboarding_sync_settings": {
"message": "Allows you to sync settings across browsers and devices"
},
"hub_browser_already_have_account": {
"ghostery_browser_hub_onboarding_already_have_account": {
"message": "I already have an account."
},
"hub_browser_send_me": {
"ghostery_browser_hub_onboarding_send_me": {
"message": "Send me"
},
"hub_browser_updates_and_promotions": {
"ghostery_browser_hub_onboarding_updates_and_promotions": {
"message": "updates & promotions."
},
"hub_browser_skip": {
"ghostery_browser_hub_onboarding_skip": {
"message": "Skip"
},
"hub_browser_we_take_your_privacy_very_seriously": {
"ghostery_browser_hub_onboarding_we_take_your_privacy_very_seriously": {
"message": "We take your privacy very seriously. Learn more"
},
"hub_browser_private_by_design": {
"ghostery_browser_hub_onboarding_private_by_design": {
"message": "Private by design"
},
"hub_browser_private_by_design_description": {
"ghostery_browser_hub_onboarding_private_by_design_description": {
"message": "Privacy is incredibly important to us at Ghostery and we've taken extra care to design our products that limits the amount of personal information collected."
},
"hub_browser_why_do_you_need_my_email": {
"ghostery_browser_hub_onboarding_why_do_you_need_my_email": {
"message": "Why do you need my email?"
},
"hub_browser_why_do_you_need_my_email_description": {
"ghostery_browser_hub_onboarding_why_do_you_need_my_email_description": {
"message": "We've found email is the simplest way to create and secure a unique account without sharing your information. It helps sync your custom settings across your devices."
},
"hub_browser_what_do_you_use_my_email_for": {
"ghostery_browser_hub_onboarding_what_do_you_use_my_email_for": {
"message": "What do you use my email for?"
},
"hub_browser_what_do_you_use_my_email_for_description": {
"ghostery_browser_hub_onboarding_what_do_you_use_my_email_for_description": {
"message": "We never share or sell your personal information. Your email address is used for account management, technical support, product-related communications, and some opt-in features."
},
"hub_browser_how_secure_is_": {
"ghostery_browser_hub_onboarding_how_secure_is_": {
"message": "How secure is"
},
"hub_browser_how_secure_is_ghostery_description": {
"ghostery_browser_hub_onboarding_how_secure_is_ghostery_description": {
"message": "We never share or sell your personal information. Your email address is used for account management, technical support, product-related communications, and some opt-in features."
},
"hub_browser_can_i_remove_my_account": {
"ghostery_browser_hub_onboarding_can_i_remove_my_account": {
"message": "Can I remove my account?"
},
"hub_browser_can_i_remove_my_account_description": {
"ghostery_browser_hub_onboarding_can_i_remove_my_account_description": {
"message": "We hope you enjoy using Ghostery, but if you do decide to leave we will remove all of your personal information within 90 days from the date of request."
},
"hub_browser_visit_our_privacy_policy": {
"ghostery_browser_hub_onboarding_visit_our_privacy_policy": {
"message": "Visit our Privacy Policy for more information"
},
"hub_browser_create_an_account": {
"ghostery_browser_hub_onboarding_create_an_account": {
"message": "Create an account."
},
"hub_browser_you_are_signed_in_as": {
"ghostery_browser_hub_onboarding_you_are_signed_in_as": {
"message": "You are signed in as"
},
"ghostery_browser_hub_onboarding_yay_youre_all_set": {
"message": "Yay! You're all set."
},
"ghostery_browser_hub_onboarding_start_browsing_the_web_with": {
"message": "Start browsing the web with"
},
"ghostery_browser_hub_onboarding_lets_search": {
"message": "Let's search"
},
"enable_when_paused": {
"message": "To use this function, Resume Ghostery."
},
@@ -17,7 +17,7 @@ import ClassNames from 'classnames';
import { NavLink } from 'react-router-dom';
import { ToggleCheckbox } from '../../../shared-components';

const promoString = `${t('hub_browser_send_me')} Ghostery ${t('hub_browser_updates_and_promotions')}`;
const promoString = `${t('ghostery_browser_hub_onboarding_send_me')} Ghostery ${t('ghostery_browser_hub_onboarding_updates_and_promotions')}`;

/**
* A Functional React component for rendering the Browser Create Account View
@@ -25,28 +25,28 @@ const CREATE_ACCOUNT = 'CREATE_ACCOUNT';
const faqList = [
{
icon: 'ghosty-shield.svg',
label: t('hub_browser_private_by_design'),
description: t('hub_browser_private_by_design_description'),
label: t('ghostery_browser_hub_onboarding_private_by_design'),
description: t('ghostery_browser_hub_onboarding_private_by_design_description'),
},
{
icon: 'ghosty-letter.svg',
label: t('hub_browser_why_do_you_need_my_email'),
description: t('hub_browser_why_do_you_need_my_email_description'),
label: t('ghostery_browser_hub_onboarding_why_do_you_need_my_email'),
description: t('ghostery_browser_hub_onboarding_why_do_you_need_my_email_description'),
},
{
icon: 'ghosty-shield-letter.svg',
label: t('hub_browser_what_do_you_use_my_email_for'),
description: t('hub_browser_what_do_you_use_my_email_for_description'),
label: t('ghostery_browser_hub_onboarding_what_do_you_use_my_email_for'),
description: t('ghostery_browser_hub_onboarding_what_do_you_use_my_email_for_description'),
},
{
icon: 'ghosty-lock.svg',
label: `${t('hub_browser_how_secure_is_')} Ghostery?`,
description: t('hub_browser_how_secure_is_ghostery_description'),
label: `${t('ghostery_browser_hub_onboarding_how_secure_is_')} Ghostery?`,
description: t('ghostery_browser_hub_onboarding_how_secure_is_ghostery_description'),
},
{
icon: 'ghosty-box.svg',
label: t('hub_browser_can_i_remove_my_account'),
description: t('hub_browser_can_i_remove_my_account_description'),
label: t('ghostery_browser_hub_onboarding_can_i_remove_my_account'),
description: t('ghostery_browser_hub_onboarding_can_i_remove_my_account_description'),
}
];

@@ -66,7 +66,7 @@ const renderSkipLink = () => (
<div className="row align-center-middle">
<div className="columns small-10 medium-5" />
<div className="columns small-10 medium-5">
<div className="BrowserCreateAccountView__skip">{t('hub_browser_skip')}</div>
<div className="BrowserCreateAccountView__skip">{t('ghostery_browser_hub_onboarding_skip')}</div>
</div>
</div>
);
@@ -100,7 +100,7 @@ const BrowserCreateAccountView = (props) => {

return (user ? (
<div className="BrowserCreateAccountView__alreadySignedIn">
<div className="BrowserCreateAccountView__title">{t('hub_browser_you_are_signed_in_as')}</div>
<div className="BrowserCreateAccountView__title">{t('ghostery_browser_hub_onboarding_you_are_signed_in_as')}</div>
<div className="BrowserCreateAccountView__email">{email}</div>
<div className="BrowserCreateAccountView__ctaButtonContainer">
{/* Link to next page */}
@@ -110,18 +110,18 @@ const BrowserCreateAccountView = (props) => {
) : (
<div className="BrowserCreateAccountView">
{view === CREATE_ACCOUNT && (
<div className="BrowserCreateAccountView__title">{t('hub_browser_create_a_ghostery_account')}</div>
<div className="BrowserCreateAccountView__title">{t('ghostery_browser_hub_onboarding_create_a_ghostery_account')}</div>
)}
{view === SIGN_IN && (
<div className="BrowserCreateAccountView__title">{t('sign_in')}</div>
)}
<div className="BrowserCreateAccountView__subtitle">{ t('hub_browser_sync_settings') }</div>
<div className="BrowserCreateAccountView__subtitle">{ t('ghostery_browser_hub_onboarding_sync_settings') }</div>
<div className="row align-center-middle">
{view === CREATE_ACCOUNT && (
<div className="BrowserCreateAccountView__alreadyHaveAccount columns small-12 medium-5" onClick={() => setView(SIGN_IN)}>{t('hub_browser_already_have_account')}</div>
<div className="BrowserCreateAccountView__alreadyHaveAccount columns small-12 medium-5" onClick={() => setView(SIGN_IN)}>{t('ghostery_browser_hub_onboarding_already_have_account')}</div>
)}
{view === SIGN_IN && (
<div className="BrowserCreateAccountView__alreadyHaveAccount columns small-12 medium-5" onClick={() => setView(CREATE_ACCOUNT)}>{t('hub_browser_create_an_account')}</div>
<div className="BrowserCreateAccountView__alreadyHaveAccount columns small-12 medium-5" onClick={() => setView(CREATE_ACCOUNT)}>{t('ghostery_browser_hub_onboarding_create_an_account')}</div>
)}
<div className="BrowserCreateAccountView__alreadyHaveAccount columns small-12 medium-5" />
</div>
@@ -130,7 +130,7 @@ const BrowserCreateAccountView = (props) => {
<BrowserCreateAccountForm />
{renderSkipLink()}
<div className="BrowserCreateAccountView__learnMoreContainer" onClick={handleFAQLearnMoreClick}>
<div className="BrowserCreateAccountView__learnMore">{t('hub_browser_we_take_your_privacy_very_seriously')}</div>
<div className="BrowserCreateAccountView__learnMore">{t('ghostery_browser_hub_onboarding_we_take_your_privacy_very_seriously')}</div>
</div>
<div className={arrowClassNames} onClick={handleFAQLearnMoreClick} />
<div ref={faqRef} className="BrowserCreateAccountView__FAQContainer">
@@ -141,7 +141,7 @@ const BrowserCreateAccountView = (props) => {
{expanded && (
<div className="row">
<a className="BrowserCreateAccountView__privacyPolicyLink columns small-12 medium-10 medium-offset-1 large-8 large-offset-3" href={`${globals.GHOSTERY_BASE_URL}/about-ghostery/ghostery-plans-and-products-privacy-policy/`} target="_blank" rel="noreferrer">
{t('hub_browser_visit_our_privacy_policy')}
{t('ghostery_browser_hub_onboarding_visit_our_privacy_policy')}
</a>
</div>
)}
@@ -86,9 +86,11 @@ html, body, #root {
@import '../hub/Views/LogInView/LogInView.scss';
@import '../hub/Views/CreateAccountView/CreateAccountView.scss';
@import '../hub/Views/UpgradePlanView/UpgradePlanView.scss';
@import '../hub/Views/BrowserCreateAccountView/BrowserCreateAccountView.scss';
@import '../hub/Views/BrowserCreateAccountForm/BrowserCreateAccountForm.scss';
@import '../hub/Views/BrowserLogInForm/BrowserLogInForm.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step0_WelcomeView/WelcomeView.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step1_CreateAccountView/Step1_CreateAccountView.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step1_CreateAccountForm/Step1_CreateAccountForm.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step1_LogInForm/Step1_LogInForm.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.scss';

// Imports from ../shared-components directory
@import '../shared-components/ExitButton/ExitButton.scss';
You are viewing a condensed version of this merge commit. You can view the full changes here.
ProTip! Use n and p to navigate between commits in a pull request.