+
+
{this.renderTitleText()}
+
{this.renderSubtitleText(didNotSelectGhosterySearch)}
+ {didNotSelectGhosterySearch && isBasic && (
+
+ {searchPromo()}
+ {/* TODO: For the CTA button below,
1. If user is signed in, activate the user’s 7-day free trial for the Ghostery Search Plus plan
and move them to Step 5 if signed in
2. If user is signed out, clicking this should take them to Step 4b (linked)
*/}
- {t('ghostery_browser_hub_onboarding_start_trial')}
- {t('ghostery_browser_hub_onboarding_see_all_plans')}
-
-
- )}
- {((isBasic && !didNotSelectGhosterySearch) || expanded || isPlus || isPremium) && (
-
- {(isPlus) ? (
-
-
- {this.plusCard(this.isPlusPlanChecked(), this.selectPlusPlan, isPlus)}
+
{t('ghostery_browser_hub_onboarding_start_trial')}
+
{t('ghostery_browser_hub_onboarding_see_all_plans')}
+
+
+ )}
+ {((isBasic && !didNotSelectGhosterySearch) || expanded || isPlus || isPremium) && (
+
+ {(isPlus) ? (
+
+
+ {this.plusCard(this.isPlusPlanChecked(), this.selectPlusPlan, isPlus)}
+
+
{t('ghostery_browser_hub_onboarding_or')}
+
+ {premiumCard(this.isPremiumPlanChecked(), this.selectPremiumPlan, isPlus)}
+
-
{t('ghostery_browser_hub_onboarding_or')}
-
- {premiumCard(this.isPremiumPlanChecked(), this.selectPremiumPlan, isPlus)}
+ ) : (
+
+ {isBasic && (
+ basicCard(this.isBasicPlanChecked(), this.selectBasicPlan)
+ )}
+ {!isPremium && (
+
+ {this.plusCard(this.isPlusPlanChecked(), this.selectPlusPlan)}
+
+ )}
+ {premiumCard(this.isPremiumPlanChecked(), this.selectPremiumPlan)}
-
- ) : (
-
- {isBasic && (
- basicCard(this.isBasicPlanChecked(), this.selectBasicPlan)
- )}
- {!isPremium && (
-
- {this.plusCard(this.isPlusPlanChecked(), this.selectPlusPlan)}
-
- )}
- {premiumCard(this.isPremiumPlanChecked(), this.selectPremiumPlan)}
-
- )}
- {(isBasic && (
-
- {(selectedPlan === BASIC) && (
-
setSetupStep({ setup_step: CHOOSE_PLAN, origin: ONBOARDING })}>
- {t('next')}
-
- )}
- {selectedPlan === PLUS && (
-
{t('next')}
- )}
- {selectedPlan === PREMIUM && (
-
{t('next')}
- )}
-
- ))}
- {isPremium && (
-
setSetupStep({ setup_step: CHOOSE_PLAN, origin: ONBOARDING })}>
- {t('next')}
-
- )}
-
- )}
-
+ )}
+ {(isBasic && (
+
+ {(selectedPlan === BASIC) && (
+
setSetupStep({ setup_step: CHOOSE_PLAN, origin: ONBOARDING })}>
+ {t('next')}
+
+ )}
+ {selectedPlan === PLUS && (
+
{t('next')}
+ )}
+ {selectedPlan === PREMIUM && (
+
{t('next')}
+ )}
+
+ ))}
+ {isPremium && (
+
setSetupStep({ setup_step: CHOOSE_PLAN, origin: ONBOARDING })}>
+ {t('next')}
+
+ )}
+
+ )}
+
+
);
}
}
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/Step4_ChoosePlanView/ChoosePlanView.scss b/app/ghostery-browser-hub/Views/OnboardingViews/Step4_ChoosePlanView/ChoosePlanView.scss
index 034fa539f..31312470f 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/Step4_ChoosePlanView/ChoosePlanView.scss
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/Step4_ChoosePlanView/ChoosePlanView.scss
@@ -1,8 +1,36 @@
$medium-large-breakpoint: 1118px; // Break when 3 cards on the screen overflow to next line
.ChoosePlanView {
+ margin: 45px auto 0 auto;
padding-bottom: 20px;
}
+.ChoosePlanView__relativeContainer {
+ position: relative;
+}
+.ChoosePlanView__caret.left {
+ margin: 7px auto 0 auto;
+ height: 10px;
+ width: 10px;
+ border-left: 2px solid $tundora;
+ border-top: 2px solid $tundora;
+ cursor: pointer;
+ transform: rotate(-45deg);
+}
+.ChoosePlanView__backContainer {
+ position: absolute;
+ display: flex;
+ width: 68px;
+ margin-top: 52px;
+ @include breakpoint(small down) {
+ position: relative;
+ }
+ .ChoosePlanView__back {
+ margin-top: 8px;
+ font-size: 16px;
+ color: $tundora;
+ text-decoration: underline;
+ }
+}
.ChoosePlanView__yourPrivacyPlan {
margin: auto;
font-size: 24px;
@@ -259,6 +287,7 @@ $medium-large-breakpoint: 1118px; // Break when 3 cards on the screen overflow t
.ChoosePlanView__price {
min-height: 85px;
margin-bottom: rem-calc(20);
+ font-size: 36px;
&-blue {
color: $price-blue;
}
@@ -279,6 +308,7 @@ $medium-large-breakpoint: 1118px; // Break when 3 cards on the screen overflow t
}
}
&.sub-text {
+ font-size: 12px;
font-weight: 500;
}
}
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.jsx b/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.jsx
index addf3bea4..e4ae3351e 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.jsx
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.jsx
@@ -11,7 +11,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0
*/
-import React from 'react';
+import React, { Fragment } from 'react';
+import { NavLink } from 'react-router-dom';
/**
* A Functional React component for rendering the Browser Success View
@@ -22,12 +23,23 @@ const SuccessView = (props) => {
const { actions } = props;
const { sendPing } = actions;
return (
-
-
{t('ghostery_browser_hub_onboarding_youve_successfully_set_up_your_browser')}
-
{`${t('ghostery_browser_hub_onboarding_surf_with_ease')}`}
-

-
-
+
+
+
+
+
+ {t('ghostery_browser_hub_onboarding_back')}
+
+
+
+
+
{t('ghostery_browser_hub_onboarding_youve_successfully_set_up_your_browser')}
+
+
{`${t('ghostery_browser_hub_onboarding_surf_with_ease')} Ghostery`}
+

+
+
+
);
};
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.scss b/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.scss
index 9ef034fb7..074ce5302 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.scss
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/Step5_SuccessView/SuccessView.scss
@@ -5,6 +5,36 @@
flex-direction: column;
}
+.SuccessView__relativeContainer {
+ position: relative;
+}
+
+.SuccessView__caret.left {
+ margin: 7px auto 0 auto;
+ height: 10px;
+ width: 10px;
+ border-left: 2px solid $tundora;
+ border-top: 2px solid $tundora;
+ cursor: pointer;
+ transform: rotate(-45deg);
+}
+
+.SuccessView__backContainer {
+ position: absolute;
+ display: flex;
+ width: 68px;
+ margin-top: 142px;
+ @include breakpoint(small down) {
+ margin-top: 90px;
+ }
+ .SuccessView__back {
+ margin-top: 8px;
+ font-size: 16px;
+ color: $tundora;
+ text-decoration: underline;
+ }
+}
+
.SuccessView__title {
margin-top: 125px;
font-size: 24px;
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.jsx b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.jsx
index 93029a213..d4be7e485 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.jsx
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.jsx
@@ -56,6 +56,12 @@ const StepProgressBar = (props) => {
const { currentStep } = props;
const totalSteps = steps.length;
+ const logoutIfStepOne = (stepId) => {
+ const { actions } = props;
+ const { logout } = actions;
+ if (stepId === LOGIN) logout();
+ };
+
const renderStep = (step, isCurrent, stepClass) => {
const labelClasses = ClassNames('StepProgressBar__label', {
current: isCurrent,
@@ -64,9 +70,18 @@ const StepProgressBar = (props) => {
[`step-${step.id}`]: stepClass !== 'step-completed',
});
+ if (stepClass === 'incomplete') {
+ return (
+
+ );
+ }
+
return (
-
+ logoutIfStepOne(step.id)}>
{step.label}
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.scss b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.scss
index b6fcdb196..7fbbb2a02 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.scss
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/StepProgressBar.scss
@@ -12,6 +12,7 @@
*/
.StepProgressBarContainer {
+ margin-top: 40px;
display: flex;
justify-content: space-around;
align-items: center;
@@ -19,6 +20,7 @@
margin: auto;
padding-top: 10px;
}
+
.StepProgressBar__Step {
height: 34px;
width: 32px;
@@ -78,7 +80,7 @@
width: 38px;
font-size: 12px;
color: $tundora;
- &.currentStep {
+ &.current {
font-weight: 700;
}
}
diff --git a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/index.js b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/index.js
index 21d943533..127b75783 100644
--- a/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/index.js
+++ b/app/ghostery-browser-hub/Views/OnboardingViews/StepProgressBar/index.js
@@ -12,5 +12,11 @@
*/
import StepProgressBar from './StepProgressBar';
+import { buildReduxHOC } from '../../../../shared-hub/utils';
+import { logout } from '../../../../Account/AccountActions';
-export default StepProgressBar;
+const actionCreators = {
+ logout
+};
+
+export default buildReduxHOC(null, actionCreators, StepProgressBar);
diff --git a/app/scss/hub_ghostery_browser.scss b/app/scss/hub_ghostery_browser.scss
index 19e17a59d..ef1d248c8 100644
--- a/app/scss/hub_ghostery_browser.scss
+++ b/app/scss/hub_ghostery_browser.scss
@@ -30,9 +30,6 @@ html, body, #root {
overflow-x: hidden;
}
@media only screen and (max-width: 740px) {
- .App__mainContent {
- margin-left: 54px;
- }
.android-relative {position: relative;}
}
@@ -70,6 +67,7 @@ html, body, #root {
@import './partials/radio_button';
// Imports from ../ghostery-browser-hub directory
+@import '../ghostery-browser-hub/Views/OnboardingView/OnboardingView.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step0_WelcomeView/WelcomeView.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/StepProgressbar/StepProgressbar.scss';
@import '../ghostery-browser-hub/Views/OnboardingViews/Step1_CreateAccountView/Step1_CreateAccountView.scss';