From 84db458390bf70ea640885bda90fa5d1c6cb8a8d Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:18:47 +0530 Subject: [PATCH 01/24] Basic Dynamic Exit Link --- includes/Data/Brands.php | 2 ++ src/OnboardingSPA/components/Button/NavCardButton/index.js | 4 ++-- src/OnboardingSPA/components/ExitToWordPress/index.js | 4 ++-- src/OnboardingSPA/components/Header/step-navigation.js | 4 ++-- src/OnboardingSPA/components/SkipButton/index.js | 4 ++-- src/constants.js | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index f7add3595..78cf67bcc 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -29,6 +29,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.com', 'domainsUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/email-office', + 'dashboardUrl' => '?page=bluehost', 'phoneNumbers' => array( 'sales' => '844-303-1730', 'support' => '888-401-4678', @@ -82,6 +83,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.in', 'domainsUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/email-office', + 'dashboardUrl' => '?page=bluehost', 'hireExpertsInfo' => array( 'defaultLink' => 'https://www.bluehost.in/solutions/full-service', 'utmParameters' => array( diff --git a/src/OnboardingSPA/components/Button/NavCardButton/index.js b/src/OnboardingSPA/components/Button/NavCardButton/index.js index 3872897af..1af6ee87e 100644 --- a/src/OnboardingSPA/components/Button/NavCardButton/index.js +++ b/src/OnboardingSPA/components/Button/NavCardButton/index.js @@ -4,7 +4,7 @@ import { store as nfdOnboardingStore } from '../../../store'; import Button from '../../Button'; import { setFlow } from '../../../utils/api/flow'; -import { wpAdminPage, bluehostDashboardPage } from '../../../../constants'; +import { wpAdminPage, dashboardPage } from '../../../../constants'; /** * Navigation Button Component on Card @@ -37,7 +37,7 @@ const NavCardButton = ( { text, disabled } ) => { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? bluehostDashboardPage + ? dashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/ExitToWordPress/index.js b/src/OnboardingSPA/components/ExitToWordPress/index.js index 09285f463..eaac7078c 100644 --- a/src/OnboardingSPA/components/ExitToWordPress/index.js +++ b/src/OnboardingSPA/components/ExitToWordPress/index.js @@ -9,7 +9,7 @@ import classNames from 'classnames'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; import { getSettings, setSettings } from '../../utils/api/settings'; -import { wpAdminPage, bluehostDashboardPage } from '../../../constants'; +import { wpAdminPage, dashboardPage } from '../../../constants'; /** * Self-contained button and confirmation modal for exiting Onboarding page. @@ -90,7 +90,7 @@ const ExitToWordPress = ( { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? bluehostDashboardPage + ? dashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/Header/step-navigation.js b/src/OnboardingSPA/components/Header/step-navigation.js index 6ac1fc434..17fba34e0 100644 --- a/src/OnboardingSPA/components/Header/step-navigation.js +++ b/src/OnboardingSPA/components/Header/step-navigation.js @@ -6,7 +6,7 @@ import { Icon, chevronLeft, chevronRight } from '@wordpress/icons'; import { __ } from '@wordpress/i18n'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; -import { wpAdminPage, bluehostDashboardPage } from '../../../constants'; +import { wpAdminPage, dashboardPage } from '../../../constants'; /** * Back step Navigation button. @@ -61,7 +61,7 @@ async function saveDataAndExit( currentData ) { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? bluehostDashboardPage + ? dashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/SkipButton/index.js b/src/OnboardingSPA/components/SkipButton/index.js index 995b71d7d..ee5989187 100644 --- a/src/OnboardingSPA/components/SkipButton/index.js +++ b/src/OnboardingSPA/components/SkipButton/index.js @@ -7,7 +7,7 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; import { getSettings, setSettings } from '../../utils/api/settings'; -import { wpAdminPage, bluehostDashboardPage } from '../../../constants'; +import { wpAdminPage, dashboardPage } from '../../../constants'; /** * Interface Text Inputs with standard design. @@ -56,7 +56,7 @@ const SkipButton = () => { // Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? bluehostDashboardPage + ? dashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/constants.js b/src/constants.js index 36d2121d0..b8008b7a9 100644 --- a/src/constants.js +++ b/src/constants.js @@ -10,7 +10,7 @@ export const onboardingRestRoute = 'newfold-onboarding/v1'; export const wpRestBase = `${ wpRestURL }/${ wpRestRoute }`; export const onboardingRestBase = `${ wpRestURL }/${ onboardingRestRoute }`; export const wpAdminPage = `${ wpAdminUrl }index.php`; -export const bluehostDashboardPage = `${ wpAdminPage }?page=bluehost`; +export const dashboardPage = `${ wpAdminPage }${ window?.nfdOnboarding?.currentBrand?.dashboardUrl }`; export const NFD_ONBOARDING_EVENT_PREFIX = 'nfd-module-onboarding-event'; export const VIEW_NAV_PRIMARY = 'nav-primary'; export const VIEW_NAV_DESIGN = 'nav-design'; From edb0d6c8d104f0de5eb85ee00dc272ade4170c79 Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 15:57:36 +0530 Subject: [PATCH 02/24] Linting JS --- .../components/ExitToWordPress/index.js | 18 +++++++--------- .../components/Header/step-navigation.js | 21 ++++++++++--------- .../components/SkipButton/index.js | 16 +++++++------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/OnboardingSPA/components/ExitToWordPress/index.js b/src/OnboardingSPA/components/ExitToWordPress/index.js index eaac7078c..dd6827da8 100644 --- a/src/OnboardingSPA/components/ExitToWordPress/index.js +++ b/src/OnboardingSPA/components/ExitToWordPress/index.js @@ -15,7 +15,8 @@ import { wpAdminPage, dashboardPage } from '../../../constants'; * Self-contained button and confirmation modal for exiting Onboarding page. * * @param {*} param0 - * @return + * + * @return {WPComponent} ExitToWordPress Component */ const ExitToWordPress = ( { buttonText = __( 'Exit to WordPress', 'wp-module-onboarding' ), @@ -62,7 +63,7 @@ const ExitToWordPress = ( { ); } - async function syncSocialSettingsFinish( currentData ) { + async function syncSocialSettingsFinish() { const initialData = await getSettings(); const result = await setSettings( currentData?.data?.socialData ); if ( result?.error !== null ) { @@ -71,19 +72,18 @@ const ExitToWordPress = ( { return result?.body; } - async function saveData( path, currentData ) { + async function saveData( path ) { if ( currentData ) { currentData.hasExited = new Date().getTime(); // If Social Data is changed then sync it if ( path?.includes( 'basic-info' ) ) { - const socialData = await syncSocialSettingsFinish( - currentData - ); + const socialData = await syncSocialSettingsFinish(); // If Social Data is changed then Sync that also to the store - if ( socialData && currentData?.data ) + if ( socialData && currentData?.data ) { currentData.data.socialData = socialData; + } } setFlow( currentData ); } @@ -125,9 +125,7 @@ const ExitToWordPress = ( { diff --git a/src/OnboardingSPA/components/Header/step-navigation.js b/src/OnboardingSPA/components/Header/step-navigation.js index 17fba34e0..d967552d9 100644 --- a/src/OnboardingSPA/components/Header/step-navigation.js +++ b/src/OnboardingSPA/components/Header/step-navigation.js @@ -12,7 +12,8 @@ import { wpAdminPage, dashboardPage } from '../../../constants'; * Back step Navigation button. * * @param {*} param0 - * @return + * + * @return {WPComponent} Back Component */ const Back = ( { path } ) => { const navigate = useNavigate(); @@ -34,7 +35,8 @@ const Back = ( { path } ) => { * Next step naigation button * * @param {*} param0 - * @return + * + * @return {WPComponent} Next Component */ const Next = ( { path } ) => { /* [TODO]: some sense of isStepComplete to enable/disable */ @@ -69,14 +71,13 @@ async function saveDataAndExit( currentData ) { /** * Finish step navigation button. * - * @param root0 - * @param root0.currentData - * @param root0.saveDataAndExit - * @return + * @param {*} param0 + * + * @return {WPComponent} Finish Component */ -const Finish = ( { currentData, saveDataAndExit } ) => ( +const Finish = ( { currentData, saveDataAndExitFunc } ) => ( @@ -89,7 +89,7 @@ const SkipButton = () => { * check if this is the last step */ const exitToWordpressForEcommerce = () => { - if ( window.nfdOnboarding.currentFlow == 'ecommerce' ) { + if ( window.nfdOnboarding.currentFlow === 'ecommerce' ) { return true; } return false; From 4aa1db71dfd32355107c271c1ca8c9129d388dfd Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 16:05:39 +0530 Subject: [PATCH 03/24] Added missing semicolons --- src/constants.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/constants.js b/src/constants.js index b8008b7a9..60ab9792f 100644 --- a/src/constants.js +++ b/src/constants.js @@ -39,14 +39,14 @@ export const THEME_STATUS_NOT_ACTIVE = 'inactive'; export const THEME_STATUS_INSTALLING = 'installing'; export const THEME_STATUS_ACTIVE = 'activated'; export const THEME_STATUS_FAILURE = 'failed'; -export const THEME_INSTALL_WAIT_TIMEOUT = 30000 +export const THEME_INSTALL_WAIT_TIMEOUT = 30000; -export const ECOMMERCE_STEPS_PLUGIN = 'woocommerce' +export const ECOMMERCE_STEPS_PLUGIN = 'woocommerce'; export const PLUGIN_STATUS_INIT = 'init'; export const PLUGIN_STATUS_NOT_ACTIVE = 'inactive'; export const PLUGIN_STATUS_INSTALLING = 'installing'; export const PLUGIN_STATUS_ACTIVE = 'activated'; -export const PLUGIN_INSTALL_WAIT_TIMEOUT = 30000 +export const PLUGIN_INSTALL_WAIT_TIMEOUT = 30000; /** * All views for the component. From f01af135d41bd8eeab718bd909e7a2c4a5c91a35 Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:35:26 +0530 Subject: [PATCH 04/24] Undefined Case --- src/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants.js b/src/constants.js index 60ab9792f..ec263a14d 100644 --- a/src/constants.js +++ b/src/constants.js @@ -10,7 +10,7 @@ export const onboardingRestRoute = 'newfold-onboarding/v1'; export const wpRestBase = `${ wpRestURL }/${ wpRestRoute }`; export const onboardingRestBase = `${ wpRestURL }/${ onboardingRestRoute }`; export const wpAdminPage = `${ wpAdminUrl }index.php`; -export const dashboardPage = `${ wpAdminPage }${ window?.nfdOnboarding?.currentBrand?.dashboardUrl }`; +export const dashboardPage = `${ wpAdminPage }${ window?.nfdOnboarding?.currentBrand?.dashboardUrl ?? '' }`; export const NFD_ONBOARDING_EVENT_PREFIX = 'nfd-module-onboarding-event'; export const VIEW_NAV_PRIMARY = 'nav-primary'; export const VIEW_NAV_DESIGN = 'nav-design'; From 5a4793520fa8148701ae300558d58d88e542b0e8 Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 18:33:15 +0530 Subject: [PATCH 05/24] Renamed Components --- includes/Data/Brands.php | 4 ++-- src/OnboardingSPA/components/Button/NavCardButton/index.js | 4 ++-- src/OnboardingSPA/components/ExitToWordPress/index.js | 4 ++-- src/OnboardingSPA/components/Header/step-navigation.js | 4 ++-- src/OnboardingSPA/components/SkipButton/index.js | 4 ++-- src/constants.js | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index 78cf67bcc..946c1357d 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -29,7 +29,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.com', 'domainsUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/email-office', - 'dashboardUrl' => '?page=bluehost', + 'pluginDashboardPage' => \admin_url('admin.php?page=bluehost'), 'phoneNumbers' => array( 'sales' => '844-303-1730', 'support' => '888-401-4678', @@ -83,7 +83,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.in', 'domainsUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/email-office', - 'dashboardUrl' => '?page=bluehost', + 'pluginDashboardPage' => \admin_url('admin.php?page=bluehost'), 'hireExpertsInfo' => array( 'defaultLink' => 'https://www.bluehost.in/solutions/full-service', 'utmParameters' => array( diff --git a/src/OnboardingSPA/components/Button/NavCardButton/index.js b/src/OnboardingSPA/components/Button/NavCardButton/index.js index 1af6ee87e..b99d4c537 100644 --- a/src/OnboardingSPA/components/Button/NavCardButton/index.js +++ b/src/OnboardingSPA/components/Button/NavCardButton/index.js @@ -4,7 +4,7 @@ import { store as nfdOnboardingStore } from '../../../store'; import Button from '../../Button'; import { setFlow } from '../../../utils/api/flow'; -import { wpAdminPage, dashboardPage } from '../../../../constants'; +import { wpAdminPage, pluginDashboardPage } from '../../../../constants'; /** * Navigation Button Component on Card @@ -37,7 +37,7 @@ const NavCardButton = ( { text, disabled } ) => { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? dashboardPage + ? pluginDashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/ExitToWordPress/index.js b/src/OnboardingSPA/components/ExitToWordPress/index.js index dd6827da8..d8c52fa74 100644 --- a/src/OnboardingSPA/components/ExitToWordPress/index.js +++ b/src/OnboardingSPA/components/ExitToWordPress/index.js @@ -9,7 +9,7 @@ import classNames from 'classnames'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; import { getSettings, setSettings } from '../../utils/api/settings'; -import { wpAdminPage, dashboardPage } from '../../../constants'; +import { wpAdminPage, pluginDashboardPage } from '../../../constants'; /** * Self-contained button and confirmation modal for exiting Onboarding page. @@ -90,7 +90,7 @@ const ExitToWordPress = ( { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? dashboardPage + ? pluginDashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/Header/step-navigation.js b/src/OnboardingSPA/components/Header/step-navigation.js index d967552d9..dc71ec939 100644 --- a/src/OnboardingSPA/components/Header/step-navigation.js +++ b/src/OnboardingSPA/components/Header/step-navigation.js @@ -6,7 +6,7 @@ import { Icon, chevronLeft, chevronRight } from '@wordpress/icons'; import { __ } from '@wordpress/i18n'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; -import { wpAdminPage, dashboardPage } from '../../../constants'; +import { wpAdminPage, pluginDashboardPage } from '../../../constants'; /** * Back step Navigation button. @@ -63,7 +63,7 @@ async function saveDataAndExit( currentData ) { //Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? dashboardPage + ? pluginDashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/OnboardingSPA/components/SkipButton/index.js b/src/OnboardingSPA/components/SkipButton/index.js index 3bd457d9f..a2caba16e 100644 --- a/src/OnboardingSPA/components/SkipButton/index.js +++ b/src/OnboardingSPA/components/SkipButton/index.js @@ -7,7 +7,7 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { setFlow } from '../../utils/api/flow'; import { store as nfdOnboardingStore } from '../../store'; import { getSettings, setSettings } from '../../utils/api/settings'; -import { wpAdminPage, dashboardPage } from '../../../constants'; +import { wpAdminPage, pluginDashboardPage } from '../../../constants'; /** * Interface Text Inputs with standard design. @@ -56,7 +56,7 @@ const SkipButton = () => { // Redirect to Admin Page for normal customers // and Bluehost Dashboard for ecommerce customers const exitLink = exitToWordpressForEcommerce() - ? dashboardPage + ? pluginDashboardPage : wpAdminPage; window.location.replace( exitLink ); } diff --git a/src/constants.js b/src/constants.js index ec263a14d..f37ec96b2 100644 --- a/src/constants.js +++ b/src/constants.js @@ -10,7 +10,7 @@ export const onboardingRestRoute = 'newfold-onboarding/v1'; export const wpRestBase = `${ wpRestURL }/${ wpRestRoute }`; export const onboardingRestBase = `${ wpRestURL }/${ onboardingRestRoute }`; export const wpAdminPage = `${ wpAdminUrl }index.php`; -export const dashboardPage = `${ wpAdminPage }${ window?.nfdOnboarding?.currentBrand?.dashboardUrl ?? '' }`; +export const pluginDashboardPage = `${ window.nfdOnboarding.currentBrand?.pluginDashboardPage ?? wpAdminPage }`; export const NFD_ONBOARDING_EVENT_PREFIX = 'nfd-module-onboarding-event'; export const VIEW_NAV_PRIMARY = 'nav-primary'; export const VIEW_NAV_DESIGN = 'nav-design'; From 0a9f452a83a948e39a213ca87dd959e0a1dd44c4 Mon Sep 17 00:00:00 2001 From: Allen Benny <48691514+officiallygod@users.noreply.github.com> Date: Thu, 2 Mar 2023 18:34:44 +0530 Subject: [PATCH 06/24] Update Brands.php --- includes/Data/Brands.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index 946c1357d..0477310e3 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -29,7 +29,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.com', 'domainsUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.com/hosting/app?lil=1#/email-office', - 'pluginDashboardPage' => \admin_url('admin.php?page=bluehost'), + 'pluginDashboardPage' => \admin_url( 'admin.php?page=bluehost' ), 'phoneNumbers' => array( 'sales' => '844-303-1730', 'support' => '888-401-4678', @@ -83,7 +83,7 @@ public static function get_brands() { 'accountUrl' => 'https://my.bluehost.in', 'domainsUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/domains', 'emailUrl' => 'https://my.bluehost.in/hosting/app?lil=1#/email-office', - 'pluginDashboardPage' => \admin_url('admin.php?page=bluehost'), + 'pluginDashboardPage' => \admin_url( 'admin.php?page=bluehost' ), 'hireExpertsInfo' => array( 'defaultLink' => 'https://www.bluehost.in/solutions/full-service', 'utmParameters' => array( From 07794f4d59d3e99a938c3bf2b3373eb7fb5113a2 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 3 Mar 2023 14:48:40 +0530 Subject: [PATCH 07/24] add crazy domains branding --- includes/Data/Brands.php | 50 ++++++++++++++ src/Brands/crazy-domains/icon-z.svg | 1 + src/Brands/crazy-domains/icon.svg | 1 + src/Brands/crazy-domains/logo.svg | 1 + src/Brands/crazy-domains/step-error-logo.svg | 1 + src/Brands/crazy-domains/step-loader-logo.svg | 1 + .../CheckboxTemplate/CheckboxItem/index.js | 14 ++-- .../CheckboxItem/stylesheet.scss | 12 +++- .../SelectableCard/stylesheet.scss | 9 +-- .../DesignThemeStyles/Menu/stylesheet.scss | 2 +- .../pages/Steps/WhatNext/contents.js | 68 +++++++++++++++++++ .../pages/Steps/WhatNext/index.js | 52 +++++++------- .../pages/Steps/WhatNext/tabContent.json | 28 -------- src/OnboardingSPA/styles/_branding.scss | 56 ++++++++++++--- 14 files changed, 219 insertions(+), 77 deletions(-) create mode 100644 src/Brands/crazy-domains/icon-z.svg create mode 100644 src/Brands/crazy-domains/icon.svg create mode 100644 src/Brands/crazy-domains/logo.svg create mode 100644 src/Brands/crazy-domains/step-error-logo.svg create mode 100644 src/Brands/crazy-domains/step-loader-logo.svg create mode 100644 src/OnboardingSPA/pages/Steps/WhatNext/contents.js delete mode 100644 src/OnboardingSPA/pages/Steps/WhatNext/tabContent.json diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index f7add3595..bc00db949 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -164,6 +164,56 @@ public static function get_brands() { ), ), ), + 'crazy-domains' => array( + 'brand' => 'crazy-domains', + 'name' => 'Crazy Domains', + 'url' => 'https://www.crazydomains.com', + 'knowledgeBaseUrl' => 'https://www.crazydomains.com/learn/online-academy/', + 'helpUrl' => 'https://www.crazydomains.com/help', + 'blogUrl' => 'https://www.crazydomains.com/learn/', + 'facebookUrl' => 'https://www.facebook.com/crazydomains/', + 'twitterName' => '@crazydomains', + 'twitterUrl' => 'https://twitter.com/crazydomains', + 'youtubeUrl' => 'https://www.youtube.com/user/CrazyDomains', + 'linkedinUrl' => '', + 'accountUrl' => 'https://www.crazydomains.com/my-account/home/', + 'domainsUrl' => '', + 'emailUrl' => 'https://www.crazydomains.com/contact/', + 'phoneNumbers' => array( + 'support' => '2135592459', + ), + 'hireExpertsInfo' => array( + 'defaultLink' => 'https://www.crazydomains.com/help/', + 'fragment' => '', + 'queryParameters' => array( + 'utm_source' => 'wp-onboarding', + 'utm_medium' => 'brand-plugin', + 'utm_campaign' => 'wp-setup', + ), + ), + 'expertsInfo' => array( + 'defaultLink' => 'https://www.crazydomains.com/help/', + 'queryParams' => array( + 'utm_source' => 'wp-onboarding', + 'utm_medium' => 'brand-plugin', + ), + ), + 'fullServiceCreativeTeamInfo' => array( + 'defaultLink' => 'https://www.crazydomains.com/help/', + 'fragment' => '', + 'queryParams' => array( + 'utm_source' => 'wp-onboarding', + 'utm_medium' => 'brand-plugin', + ), + ), + 'techSupportInfo' => array( + 'defaultLink' => 'https://www.crazydomains.com/contact/', + 'queryParams' => array( + 'utm_source' => 'wp-onboarding', + 'utm_medium' => 'brand-plugin', + ), + ), + ), ); } } diff --git a/src/Brands/crazy-domains/icon-z.svg b/src/Brands/crazy-domains/icon-z.svg new file mode 100644 index 000000000..2359b74e0 --- /dev/null +++ b/src/Brands/crazy-domains/icon-z.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Brands/crazy-domains/icon.svg b/src/Brands/crazy-domains/icon.svg new file mode 100644 index 000000000..1f38a2859 --- /dev/null +++ b/src/Brands/crazy-domains/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Brands/crazy-domains/logo.svg b/src/Brands/crazy-domains/logo.svg new file mode 100644 index 000000000..4f4a5cdcc --- /dev/null +++ b/src/Brands/crazy-domains/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Brands/crazy-domains/step-error-logo.svg b/src/Brands/crazy-domains/step-error-logo.svg new file mode 100644 index 000000000..f554b5ba5 --- /dev/null +++ b/src/Brands/crazy-domains/step-error-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Brands/crazy-domains/step-loader-logo.svg b/src/Brands/crazy-domains/step-loader-logo.svg new file mode 100644 index 000000000..b312b62f2 --- /dev/null +++ b/src/Brands/crazy-domains/step-loader-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js index b2c91c1b1..22835201b 100644 --- a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js +++ b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js @@ -54,14 +54,13 @@ const CheckboxItem = ( {
diff --git a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss index 5a607410f..7f813c969 100644 --- a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss +++ b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss @@ -7,6 +7,11 @@ $main-border-main: var(--nfd-onboarding-primary-alt); $box-shadow: var(--nfd-onboarding-light-gray-highlighted); .checkbox-item { + + .highlighted { + fill: var(--wp-admin-theme-color-darker-10); + } + margin: 12px; padding: 16px; margin-top: 16px; @@ -80,7 +85,12 @@ $box-shadow: var(--nfd-onboarding-light-gray-highlighted); } &-help { - cursor: pointer; + fill: #666; + + &:hover { + cursor: pointer; + fill: var(--wp-admin-theme-color-darker-10); + } } } diff --git a/src/OnboardingSPA/components/LivePreview/SelectableCard/stylesheet.scss b/src/OnboardingSPA/components/LivePreview/SelectableCard/stylesheet.scss index 8733e1634..5c7489a20 100644 --- a/src/OnboardingSPA/components/LivePreview/SelectableCard/stylesheet.scss +++ b/src/OnboardingSPA/components/LivePreview/SelectableCard/stylesheet.scss @@ -29,7 +29,7 @@ $main-border-main: var(--nfd-onboarding-primary-alt); justify-content: center; &__dot { - background-color: #989EA7; + background-color: #989ea7; width: 8px; margin: 3px; height: 8px; @@ -71,6 +71,7 @@ $main-border-main: var(--nfd-onboarding-primary-alt); .live-preview { &__container { + &-custom { width: 100%; overflow: hidden; @@ -89,9 +90,10 @@ $main-border-main: var(--nfd-onboarding-primary-alt); width: 100%; opacity: 0; transition: 0.5s ease; - background-color: rgba(28, 92, 186); + background-color: + rgb(var(--wp-admin-theme-color-darker-10--rgb)) - &__icon { + &__icon{ fill: $main-color-light; font-size: 20px; position: absolute; @@ -111,4 +113,3 @@ $main-border-main: var(--nfd-onboarding-primary-alt); } } - diff --git a/src/OnboardingSPA/pages/Steps/DesignThemeStyles/Menu/stylesheet.scss b/src/OnboardingSPA/pages/Steps/DesignThemeStyles/Menu/stylesheet.scss index e40d69b1c..83e49b569 100644 --- a/src/OnboardingSPA/pages/Steps/DesignThemeStyles/Menu/stylesheet.scss +++ b/src/OnboardingSPA/pages/Steps/DesignThemeStyles/Menu/stylesheet.scss @@ -110,7 +110,7 @@ $main-border-main: var(--nfd-onboarding-primary-alt); width: 100%; opacity: 0; transition: 0.5s ease; - background-color: rgba(28, 92, 186); + background-color: rgb(var(--wp-admin-theme-color-darker-10--rgb)); &__icon { fill: $main-color-light; diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/contents.js b/src/OnboardingSPA/pages/Steps/WhatNext/contents.js new file mode 100644 index 000000000..89c641604 --- /dev/null +++ b/src/OnboardingSPA/pages/Steps/WhatNext/contents.js @@ -0,0 +1,68 @@ +import { translations } from '../../../utils/locales/translations'; +import { __, sprintf } from '@wordpress/i18n'; + +const getContents = ( brandName ) => { + return { + heading: __( 'Nice work: Your site is ready 🎉', 'wp-module-onboarding' ), + subheading: __( 'Move-in day begins! Let us know if you\'d like a hand.', 'wp-module-onboarding' ), + buttonText: __( 'Complete Setup', 'wp-module-onboarding' ), + tabs: [ + { + name: __( 'tab1', 'wp-module-onboarding' ), + title: __( 'WHATS NEXT', 'wp-module-onboarding' ), + subtitle: __( + 'Add content, organize your menu and launch.', + 'wp-module-onboarding' + ), + text: sprintf( + /* translators: %s: Brand */ + __( + "✅ Theme created, features added and Coming Soon mode activated. Thank you for building your site with %s, we're always here to help!", + 'wp-module-onboarding' + ), + brandName + ), + imgType: 'wpadmin-img', + animationName: 'fade-in-right', + }, + { + name: __( 'tab2', 'wp-module-onboarding' ), + title: __( 'HELP & RESOURCES', 'wp-module-onboarding' ), + subtitle: __( + "Next step or next level, we're your partner.", + 'wp-module-onboarding' + ), + text: sprintf( + /* translators: %s: Site */ + __( + 'WordPress make it easy to grow your %s. Send a newsletter, broadcast a podcast, create courses and trainings. Dream it, build it.', + 'wp-module-onboarding' + ), + translations( 'site' ) + ), + imgType: 'help-img', + animationName: 'fade-in-up', + }, + { + name: __( 'tab3', 'wp-module-onboarding' ), + title: __( 'HIRE OUR EXPERTS', 'wp-module-onboarding' ), + subtitle: __( + 'Make our great people your people.', + 'wp-module-onboarding' + ), + text: sprintf( + /* translators: %s: Site */ + __( + "Pick your %s's unique design now and refine by customing your block templates, colors and fonts in the WordPress Site Editor.", + 'wp-module-onboarding' + ), + translations( 'site' ) + ), + imgType: 'bluesky-img', + animationName: 'fade-in-left', + }, + ], + }; +}; + +export default getContents; diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/index.js b/src/OnboardingSPA/pages/Steps/WhatNext/index.js index 1ee8e805e..0f6c53372 100644 --- a/src/OnboardingSPA/pages/Steps/WhatNext/index.js +++ b/src/OnboardingSPA/pages/Steps/WhatNext/index.js @@ -1,18 +1,16 @@ -import CommonLayout from '../../../components/Layouts/Common'; -import { store as nfdOnboardingStore } from '../../../store'; -import { useDispatch } from '@wordpress/data'; +import { useDispatch, useSelect } from '@wordpress/data'; import { useEffect } from '@wordpress/element'; -import NewfoldLargeCard from '../../../components/NewfoldLargeCard'; -import { __ } from '@wordpress/i18n'; -import {translations} from '../../../utils/locales/translations'; +import CommonLayout from '../../../components/Layouts/Common'; +import NewfoldLargeCard from '../../../components/NewfoldLargeCard'; import CardHeader from '../../../components/CardHeader'; import NavCardButton from '../../../components/Button/NavCardButton'; - import Tab from '../../../components/Tab'; -import tabContent from './tabContent.json'; import TabPanelHover from '../../../components/TabPanelHover'; +import { store as nfdOnboardingStore } from '../../../store'; + import { SIDEBAR_LEARN_MORE } from '../../../../constants'; +import getContents from './contents'; const StepWhatNext = () => { const { setIsDrawerOpened, setSidebarActiveView, setIsHeaderNavigationEnabled } = @@ -24,33 +22,41 @@ const StepWhatNext = () => { setIsHeaderNavigationEnabled( true ); }, [] ); + const { brandName } = useSelect( ( select ) => { + return { + brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), + }; + } ); + + const content = getContents( brandName ); + return ( - -
+ +
+ heading={ content.heading } + subHeading={ content.subheading } > { + tabs={ content.tabs.map( ( tab ) => { return { - name: __( tab.name , 'wp-module-onboarding'), - title: __( tab.title , 'wp-module-onboarding'), + name: tab.name, + title: tab.title, content: + title={ tab.subtitle } + text={ tab.text } + imgType={ tab.imgType } + animationName={ tab.animationName } + className="tab-data" />, }; - } )} + } ) } > - {( tab ) =>
{tab.content}
} + { ( tab ) =>
{ tab.content }
}
- +
diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/tabContent.json b/src/OnboardingSPA/pages/Steps/WhatNext/tabContent.json deleted file mode 100644 index 31aa1b20a..000000000 --- a/src/OnboardingSPA/pages/Steps/WhatNext/tabContent.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "tabs": [ - { - "name": "tab1", - "title": "WHATS NEXT", - "subtitle": "Add content, organize your menu and launch.", - "text": "✅ Theme created, features added and Coming Soon mode activated. Thank you for building your site with Bluehost, we're always here to help!", - "imgType": "wpadmin-img", - "animationName": "fade-in-right" - }, - { - "name": "tab2", - "title": "HELP & RESOURCES", - "subtitle": "Next step or next level, we're your partner.", - "text": "WordPress make it easy to grow your %s. Send a newsletter, broadcast a podcast, create courses and trainings. Dream it, build it.", - "imgType": "help-img", - "animationName": "fade-in-up" - }, - { - "name": "tab3", - "title": "HIRE OUR EXPERTS", - "subtitle": "Make our great people your people.", - "text": "Pick your %s's unique design now and refine by customing your block templates, colors and fonts in the WordPress Site Editor.", - "imgType": "bluesky-img", - "animationName": "fade-in-left" - } - ] -} diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index fd3ec319a..5a17f9294 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -7,9 +7,9 @@ body { --wp-admin-theme-color-darker-10--rgb: 28, 92, 186; --wp-admin-theme-color-darker-20: #0242a0; --wp-admin-theme-color-darker-20--rgb: 2, 66, 160; - --nfd-onboarding-dark-icon: url("../../Brands/bluehost/dark.svg"); - --nfd-onboarding-icon: url("../../Brands/bluehost/icon.svg"); - --nfd-onboarding-logo: url("../../Brands/bluehost/logo.svg"); + --nfd-onboarding-dark-icon: url(../../Brands/bluehost/dark.svg); + --nfd-onboarding-icon: url(../../Brands/bluehost/icon.svg); + --nfd-onboarding-logo: url(../../Brands/bluehost/logo.svg); --nfd-onboarding-primary: #3575d3; --nfd-onboarding-highlighted--rgb: 123, 177, 253; --nfd-onboarding-primary-alt: #2c76dc; @@ -30,8 +30,8 @@ body { --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-light); --nfd-onboarding-loader-start: var(--nfd-onboarding-primary); --nfd-onboarding-loader-end: var(--nfd-onboarding-tertiary); - --nfd-onboarding-step-loader-icon: url("../../Brands/bluehost/step-loader-logo.svg"); - --nfd-onboarding-step-error-icon: url("../../Brands/bluehost/step-error-logo.svg"); + --nfd-onboarding-step-loader-icon: url(../../Brands/bluehost/step-loader-logo.svg); + --nfd-onboarding-step-error-icon: url(../../Brands/bluehost/step-error-logo.svg); } &.nfd-brand-hostgator { @@ -41,9 +41,9 @@ body { --wp-admin-theme-color-darker-10--rgb: 20, 133, 236; --wp-admin-theme-color-darker-20: #1177d2; --wp-admin-theme-color-darker-20--rgb: 17, 119, 210; - --nfd-onboarding-dark-icon: url("../../Brands/hostgator/dark.svg"); - --nfd-onboarding-icon: url("../../Brands/hostgator/icon.svg"); - --nfd-onboarding-logo: url("../../Brands/hostgator/logo.svg"); + --nfd-onboarding-dark-icon: url(../../Brands/hostgator/dark.svg); + --nfd-onboarding-icon: url(../../Brands/hostgator/icon.svg); + --nfd-onboarding-logo: url(../../Brands/hostgator/logo.svg); --nfd-onboarding-primary: #2e93ee; --nfd-onboarding-highlighted--rgb: 30, 32, 68; --nfd-onboarding-primary-alt: #3b97ff; @@ -72,9 +72,9 @@ body { --wp-admin-theme-color-darker-10--rgb: 43, 92, 251; --wp-admin-theme-color-darker-20: #0b44fb; --wp-admin-theme-color-darker-20--rgb: 11, 68, 251; - --nfd-onboarding-dark-icon: url("../../Brands/webcom/dark.svg"); - --nfd-onboarding-icon: url("../../Brands/webcom/icon.svg"); - --nfd-onboarding-logo: url("../../Brands/webcom/logo.svg"); + --nfd-onboarding-dark-icon: url(../../Brands/webcom/dark.svg); + --nfd-onboarding-icon: url(../../Brands/webcom/icon.svg); + --nfd-onboarding-logo: url(../../Brands/webcom/logo.svg); --nfd-onboarding-primary: #4b75fc; --nfd-onboarding-highlighted--rgb: 13, 71, 251; --nfd-onboarding-primary-alt: #0d47fb; @@ -95,4 +95,38 @@ body { --nfd-onboarding-loader-start: var(--nfd-onboarding-primary); --nfd-onboarding-loader-end: var(--nfd-onboarding-tertiary); } + + &.nfd-brand-crazy-domains { + --wp-admin-theme-color: #6fac2f; + --wp-admin-theme-color--rgb: 111, 172, 47; + --wp-admin-theme-color-darker-10: #568f1b; + --wp-admin-theme-color-darker-10--rgb: 86, 143, 27; + --wp-admin-theme-color-darker-20: #484848; + --wp-admin-theme-color-darker-20--rgb: 72, 72, 72; + --nfd-onboarding-dark-icon: url(../../Brands/crazy-domains/icon-z.svg); + --nfd-onboarding-icon: url(../../Brands/crazy-domains/icon.svg); + --nfd-onboarding-logo: url(../../Brands/crazy-domains/logo.svg); + --nfd-onboarding-primary: var(--wp-admin-theme-color); + --nfd-onboarding-highlighted--rgb: var(--wp-admin-theme-color-darker-10--rgb); + --nfd-onboarding-primary-alt: var(--wp-admin-theme-color-darker-10); + --nfd-onboarding-secondary: var(--wp-admin-theme-color-darker-10); + --nfd-onboarding-secondary-alt: var(--wp-admin-theme-color-darker-20); + --nfd-onboarding-tertiary: var(--nfd-onboarding-primary); + --nfd-onboarding-tertiary-alt: var(--nfd-onboarding-primary-alt); + --nfd-onboarding-light: #fff; + --nfd-onboarding-light-gray: #f0f0f0; + --nfd-onboarding-light-gray-2: #efefef; + --nfd-onboarding-light-gray-3: #f2f2f2; + --nfd-onboarding-light-gray-4: #a7a7a7; + --nfd-onboarding-light-gray-5: #eee; + --nfd-onboarding-light-gray-highlighted: #e2e9f4; + --nfd-onboarding-dark: var(--wp-admin-theme-color-darker-20); + --nfd-onboarding-border: 219, 219, 219; + --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-tertiary); + --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-light); + --nfd-onboarding-loader-start: var(--nfd-onboarding-primary); + --nfd-onboarding-loader-end: var(--nfd-onboarding-secondary); + --nfd-onboarding-step-loader-icon: url(../../Brands/crazy-domains/step-loader-logo.svg); + --nfd-onboarding-step-error-icon: url(../../Brands/crazy-domains/step-error-logo.svg); + } } From afc9b57cc2bcf9e2e091aaa92ddc617779505201 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 3 Mar 2023 14:54:32 +0530 Subject: [PATCH 08/24] fix svg animation --- src/Brands/crazy-domains/step-loader-logo.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Brands/crazy-domains/step-loader-logo.svg b/src/Brands/crazy-domains/step-loader-logo.svg index b312b62f2..0c5ca0e5e 100644 --- a/src/Brands/crazy-domains/step-loader-logo.svg +++ b/src/Brands/crazy-domains/step-loader-logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 7fff7690b2a63abbee2417d588863fb6c37ee2b9 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 3 Mar 2023 15:07:15 +0530 Subject: [PATCH 09/24] fix lint issues --- .../components/CheckboxTemplate/CheckboxItem/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js index 22835201b..f0935d1a7 100644 --- a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js +++ b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js @@ -23,6 +23,7 @@ const CheckboxItem = ( { desc, subtitle, callback, + tabIndex = 0, isSelectedDefault, className = 'checkbox-item', } ) => { @@ -92,6 +93,9 @@ const CheckboxItem = ( {
Date: Fri, 3 Mar 2023 18:33:43 +0530 Subject: [PATCH 10/24] improve whats next step to support multiple brands --- .../images => Brands/bluehost}/bluesky.png | Bin .../images => Brands/bluehost}/wp-admin.png | Bin src/Brands/crazy-domains/full-service.png | Bin 0 -> 111104 bytes src/Brands/crazy-domains/wp-admin.png | Bin 0 -> 54425 bytes .../pages/Steps/WhatNext/contents.js | 6 +- .../pages/Steps/WhatNext/stylesheet.scss | 207 ++++++++++-------- src/OnboardingSPA/styles/_branding.scss | 6 + src/OnboardingSPA/styles/_icons.scss | 189 ++++++---------- 8 files changed, 192 insertions(+), 216 deletions(-) rename src/{OnboardingSPA/static/images => Brands/bluehost}/bluesky.png (100%) rename src/{OnboardingSPA/static/images => Brands/bluehost}/wp-admin.png (100%) create mode 100644 src/Brands/crazy-domains/full-service.png create mode 100644 src/Brands/crazy-domains/wp-admin.png diff --git a/src/OnboardingSPA/static/images/bluesky.png b/src/Brands/bluehost/bluesky.png similarity index 100% rename from src/OnboardingSPA/static/images/bluesky.png rename to src/Brands/bluehost/bluesky.png diff --git a/src/OnboardingSPA/static/images/wp-admin.png b/src/Brands/bluehost/wp-admin.png similarity index 100% rename from src/OnboardingSPA/static/images/wp-admin.png rename to src/Brands/bluehost/wp-admin.png diff --git a/src/Brands/crazy-domains/full-service.png b/src/Brands/crazy-domains/full-service.png new file mode 100644 index 0000000000000000000000000000000000000000..76a53dd824017efc105a9f6f0c94e175ba69a52c GIT binary patch literal 111104 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 XU4d(T@oW5g4tQv*>#LQjJ`4UI$)ZNO literal 0 HcmV?d00001 diff --git a/src/Brands/crazy-domains/wp-admin.png b/src/Brands/crazy-domains/wp-admin.png new file mode 100644 index 0000000000000000000000000000000000000000..591a570f91b085bf5aadd8339d4237d1fd43fc0c GIT binary patch literal 54425 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 literal 0 HcmV?d00001 diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/contents.js b/src/OnboardingSPA/pages/Steps/WhatNext/contents.js index 89c641604..8400e18a3 100644 --- a/src/OnboardingSPA/pages/Steps/WhatNext/contents.js +++ b/src/OnboardingSPA/pages/Steps/WhatNext/contents.js @@ -22,7 +22,7 @@ const getContents = ( brandName ) => { ), brandName ), - imgType: 'wpadmin-img', + imgType: 'img-1', animationName: 'fade-in-right', }, { @@ -40,7 +40,7 @@ const getContents = ( brandName ) => { ), translations( 'site' ) ), - imgType: 'help-img', + imgType: 'img-2', animationName: 'fade-in-up', }, { @@ -58,7 +58,7 @@ const getContents = ( brandName ) => { ), translations( 'site' ) ), - imgType: 'bluesky-img', + imgType: 'img-3', animationName: 'fade-in-left', }, ], diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/stylesheet.scss b/src/OnboardingSPA/pages/Steps/WhatNext/stylesheet.scss index 0c990399c..a69f91d6e 100644 --- a/src/OnboardingSPA/pages/Steps/WhatNext/stylesheet.scss +++ b/src/OnboardingSPA/pages/Steps/WhatNext/stylesheet.scss @@ -1,137 +1,150 @@ @import "./Sidebar/LearnMore/stylesheet"; + .nfd-onboarding-overview { - width: 100%; - max-width: 960px; - background-color: var(--nfd-onboarding-light); - padding: 20px; - &__header { - display: flex; - align-items: center; - column-gap: 1rem; - &-icon { - display: flex; - place-items: center; - svg { - fill: var(--nfd-onboarding-primary); - } - } - &-heading { - margin: 0 0 6px 0; - color: var(--nfd-onboarding-dark); - } - &-subheading { - color: var(--nfd-onboarding-dark); - } - } - - &__tab-panel { - width: 90%; - padding-bottom: 40px; - color: var(--nfd-onboarding-dark); - } + width: 100%; + max-width: 960px; + background-color: var(--nfd-onboarding-light); + padding: 20px; + + &__header { + display: flex; + align-items: center; + column-gap: 1rem; + + &-icon { + display: flex; + place-items: center; + + svg { + fill: var(--nfd-onboarding-primary); + } + } + + &-heading { + margin: 0 0 6px 0; + color: var(--nfd-onboarding-dark); + } + + &-subheading { + color: var(--nfd-onboarding-dark); + } + } + + &__tab-panel { + width: 90%; + padding-bottom: 40px; + color: var(--nfd-onboarding-dark); + } } .nfd-step-card-subheading { - display: flex; - justify-content: space-around; + display: flex; + justify-content: space-around; } .components-tab-panel__tabs { - justify-content: space-around; + justify-content: space-around; + @media screen and ( max-width: 480px ) { - width: 100%; - } + width: 100%; + } } .components-tab-panel__tabs > .components-button:focus:not(:disabled), .components-tab-panel__tabs > .components-button.is-pressed:focus:not(:disabled) { - box-shadow: inset 0 0 -($border-width-tab - 0.5) 0 0 var(--wp-admin-theme-color); + box-shadow: inset 0 0 - ($border-width-tab - 0.5) 0 0 var(--wp-admin-theme-color); } .components-tab-panel__tabs-item { - justify-content: center; - border-bottom: 1px solid #CCCCCC; - width: 100%; - font-size: clamp(0.55rem, 1vw + 0.3rem, 1rem); - line-height: 1.5; - - &.is-active { - color: var(--wp-admin-theme-color); - box-shadow: inset 0 0 -($border-width-tab - 0.5) 0 0 var(--wp-admin-theme-color); - } - - &.is-not-active { - box-shadow: none !important; - } + justify-content: center; + border-bottom: 1px solid #ccc; + width: 100%; + font-size: clamp(0.55rem, 1vw + 0.3rem, 1rem); + line-height: 1.5; + + &.is-active { + color: var(--wp-admin-theme-color); + box-shadow: inset 0 0 - ($border-width-tab - 0.5) 0 0 var(--wp-admin-theme-color); + } + + &.is-not-active { + box-shadow: none !important; + } } -.tab-data{ - width: 100%; - padding-top: 40px; - display: flex; - flex-direction: row; - align-items: stretch; - justify-content: space-between; - +.tab-data { + width: 100%; + padding-top: 40px; + display: flex; + flex-direction: row; + align-items: stretch; + justify-content: space-between; + } -.content-text{ - padding-right: 10px; - font-size: clamp(0.88rem, 0.45rem + 0.76vw, 1.13rem); - line-height: 1.6; +.content-text { + padding-right: 10px; + font-size: clamp(0.88rem, 0.45rem + 0.76vw, 1.13rem); + line-height: 1.6; } .content-image { - background-color: var(--nfd-onboarding-tertiary); - overflow: hidden; + background-color: var(--nfd-onboarding-tertiary); + overflow: hidden; } -.whatsnext-image { - background-size: contain; - background-repeat: no-repeat; - height: 228px; - width: clamp(180px, 50vw, 400px); +%whatsnext-image { + background-size: contain; + background-repeat: no-repeat; + height: 228px; + width: clamp(180px, 50vw, 400px); } -.wpadmin-img { - @extend .whatsnext-image; - background-image: var(--what-next-wp-admin-img); +.img-1 { + + @extend %whatsnext-image; + background-image: var(--nfd-onboarding-step-what-next-img-1); } -.help-img { - @extend .whatsnext-image; - background-image: var(--what-next-help-img); +.img-2 { + + @extend %whatsnext-image; + background-image: var(--nfd-onboarding-step-what-next-img-2); } -.bluesky-img { - @extend .whatsnext-image; - background-image: var(--what-next-bluesky-img); +.img-3 { + + @extend %whatsnext-image; + background-image: var(--nfd-onboarding-step-what-next-img-3); } .whatnext-card { display: flex; - flex-direction: column; - align-items: center; - justify-content: space-around; - height: clamp(600px, 59vh, 800px) !important; - width: 100%; - padding-bottom: 10px; + flex-direction: column; + align-items: center; + justify-content: space-around; + height: clamp(600px, 59vh, 800px) !important; + width: 100%; + padding-bottom: 10px; } @media screen and ( max-width: #{ ($break-medium)} ) { - .tab-data { - flex-direction: column-reverse; - align-items: center; - } - - .content-text { - text-align: center; - width: 100%; - min-height: 10px; - } - - .wpadmin-img, .help-img, .bluesky-img { - max-height: 100px; - } + + .tab-data { + flex-direction: column-reverse; + align-items: center; + } + + .content-text { + text-align: center; + width: 100%; + min-height: 10px; + } + + .wpadmin-img, + .help-img, + .bluesky-img { + max-height: 100px; + } } diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index 5a17f9294..a75777d9d 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -32,6 +32,9 @@ body { --nfd-onboarding-loader-end: var(--nfd-onboarding-tertiary); --nfd-onboarding-step-loader-icon: url(../../Brands/bluehost/step-loader-logo.svg); --nfd-onboarding-step-error-icon: url(../../Brands/bluehost/step-error-logo.svg); + --nfd-onboarding-step-what-next-img-3: url(../../Brands/bluehost/bluesky.png); + --nfd-onboarding-step-what-next-img-1: url(../../Brands/bluehost/wp-admin.png); + --nfd-onboarding-step-what-next-img-2: url(../static/images/help.png); } &.nfd-brand-hostgator { @@ -128,5 +131,8 @@ body { --nfd-onboarding-loader-end: var(--nfd-onboarding-secondary); --nfd-onboarding-step-loader-icon: url(../../Brands/crazy-domains/step-loader-logo.svg); --nfd-onboarding-step-error-icon: url(../../Brands/crazy-domains/step-error-logo.svg); + --nfd-onboarding-step-what-next-img-3: url(../../Brands/crazy-domains/full-service.png); + --nfd-onboarding-step-what-next-img-1: url(../../Brands/crazy-domains/wp-admin.png); + --nfd-onboarding-step-what-next-img-2: url(../static/images/help.png); } } diff --git a/src/OnboardingSPA/styles/_icons.scss b/src/OnboardingSPA/styles/_icons.scss index 0057b5b62..0f732f3f7 100644 --- a/src/OnboardingSPA/styles/_icons.scss +++ b/src/OnboardingSPA/styles/_icons.scss @@ -1,118 +1,75 @@ body { - --nfd-publish-icon: url("../static/icons/publish.svg"); - --nfd-selling-icon: url("../static/icons/sell.svg"); - --nfd-design-icon: url("../static/icons/design.svg"); - --more-icon: url("../static/icons/more.svg"); - --reload-icon: url("../static/icons/reload.svg"); - --forward-icon: url("../static/icons/forward.svg"); - --back-icon: url("../static/icons/back.svg"); - --chevron-up-icon: url("../static/icons/chevron-up.svg"); - --chevron-down-icon: url("../static/icons/chevron-down.svg"); - --default-logo-icon: url("../static/icons/default-logo.svg"); - --facebook-icon: url("../static/icons/social/facebook.svg"); - --facebook-colored-icon: url("../static/icons/social/facebook-colored.svg"); - --twitter-icon: url("../static/icons/social/twitter.svg"); - --twitter-colored-icon: url("../static/icons/social/twitter-colored.svg"); - --instagram-icon: url("../static/icons/social/instagram.svg"); - --instagram-colored-icon: url("../static/icons/social/instagram-colored.svg"); - --linkedin-icon: url("../static/icons/social/linkedin.svg"); - --linkedin-colored-icon: url("../static/icons/social/linkedin-colored.svg"); - --yelp-icon: url("../static/icons/social/yelp.svg"); - --yelp-colored-icon: url("../static/icons/social/yelp-colored.svg"); - --youtube-icon: url("../static/icons/social/youtube.svg"); - --youtube-colored-icon: url("../static/icons/social/youtube-colored.svg"); - --tiktok-icon: url("../static/icons/social/tiktok.svg"); - --tiktok-colored-icon: url("../static/icons/social/tiktok-colored.svg"); - - --get-started-content-img: url("../static/images/content.png"); - --get-started-design-img: url("../static/images/design.png"); - --get-started-features-img: url("../static/images/features.png"); - --what-next-bluesky-img: url("../static/images/bluesky.png"); - --what-next-wp-admin-img: url("../static/images/wp-admin.png"); - --what-next-help-img: url("../static/images/help.png"); - - - --chevron-left-icon: url("../static/icons/chevron-left.svg"); - --chevron-right-icon: url("../static/icons/chevron-right.svg"); - - --business-icon: url("../static/icons/business.svg"); - --business-white-icon: url("../static/icons/business-white.svg"); - --nfd-onboarding-step-error-icon: url("../../Brands/bluehost/step-error-logo.svg"); - - --nfd-onboarding-sidebar-learn-more-get-started-welcome-illustration: url("../static/icons/learn-more-get-started-welcome.svg"); - --nfd-onboarding-sidebar-learn-more-get-started-wp-experience-illustration: url("../static/icons/learn-more-get-started-wp-experience.svg"); - --nfd-onboarding-sidebar-learn-more-get-started-site-type-illustration: url("../static/icons/learn-more-get-started-site-type.svg"); - --nfd-onboarding-sidebar-learn-more-ecommerce-address-illustration: url("../static/icons/learn-more-ecommerce-address.svg"); - --nfd-onboarding-sidebar-learn-more-ecommerce-tax-info-illustration: url("../static/icons/learn-more-ecommerce-tax-info.svg"); - --nfd-onboarding-sidebar-learn-more-ecommerce-products-illustration: url("../static/icons/learn-more-ecommerce-products.svg"); - --nfd-onboarding-sidebar-learn-more-basic-info-illustration: url("../static/icons/learn-more-basic-info.svg"); - --nfd-onboarding-sidebar-learn-more-design-theme-styles-illustration: url("../static/icons/learn-more-design-theme-styles.svg"); - --nfd-onboarding-sidebar-learn-more-design-colors-illustration: url("../static/icons/learn-more-design-colors.svg"); - --nfd-onboarding-sidebar-learn-more-design-typography-illustration: url("../static/icons/learn-more-design-typography.svg"); - --nfd-onboarding-sidebar-learn-more-design-header-menu-illustration: url("../static/icons/learn-more-design-header-menu.svg"); - --nfd-onboarding-sidebar-learn-more-design-homepage-illustration: url("../static/icons/learn-more-design-homepage.svg"); - --nfd-onboarding-sidebar-learn-more-pages-illustration: url("../static/icons/learn-more-pages.svg"); - --nfd-onboarding-sidebar-learn-more-site-features-illustration: url("../static/icons/learn-more-site-features.svg"); - --nfd-onboarding-sidebar-learn-more-what-next-illustration: url("../static/icons/learn-more-what-next.svg"); - - --site-features-analytics: url("../static/icons/site-features/analytics.svg"); - --site-features-analytics--light: url("../static/icons/site-features/analytics_light.svg"); - --site-features-bookingcalendar: url("../static/icons/site-features/bookingcalendar.svg"); - --site-features-bookingcalendar--light: url("../static/icons/site-features/bookingcalendar_light.svg"); - --site-features-email: url("../static/icons/site-features/email.svg"); - --site-features-email--light: url("../static/icons/site-features/email_light.svg"); - --site-features-filter: url("../static/icons/site-features/filter.svg"); - --site-features-filter--light: url("../static/icons/site-features/filter_light.svg"); - --site-features-form: url("../static/icons/site-features/form.svg"); - --site-features-form--light: url("../static/icons/site-features/form_light.svg"); - --site-features-lead: url("../static/icons/site-features/lead.svg"); - --site-features-lead--light: url("../static/icons/site-features/lead_light.svg"); - --site-features-search: url("../static/icons/site-features/search.svg"); - --site-features-search--light: url("../static/icons/site-features/search_light.svg"); - --site-features-security: url("../static/icons/site-features/security.svg"); - --site-features-security--light: url("../static/icons/site-features/security_light.svg"); - --site-features-share: url("../static/icons/site-features/share.svg"); - --site-features-share--light: url("../static/icons/site-features/share_light.svg"); - --site-features-wishlist: url("../static/icons/site-features/wishlist.svg"); - --site-features-wishlist--light: url("../static/icons/site-features/wishlist_light.svg"); - - /* - * Below Icons are commented because they get added to the CSS bundle and - * CSS bundle created exceeded the permissible size. - * Need to find a solution how do we deal with below icons or do we split page wise CSS bundles - * Or can using these icon paths in background-image in pages's CSS help? - */ - - // --dog-icon: url("../static/icons/dog.svg"); - // --dog-white-icon: url("../static/icons/dog-white.svg"); - - // --education-icon: url("../static/icons/education.svg"); - // --education-white-icon: url("../static/icons/education-white.svg"); - - // --entertainment-icon: url("../static/icons/entertainment.svg"); - // --entertainment-white-icon: url("../static/icons/entertainment-white.svg"); - - // --food-icon: url("../static/icons/food.svg"); - // --food-white-icon: url("../static/icons/food-white.svg"); - - // --group-icon: url("../static/icons/group-team.svg"); - // --group-white-icon: url("../static/icons/group-team-white.svg"); - - // --health-icon: url("../static/icons/health.svg"); - // --health-white-icon: url("../static/icons/health-white.svg"); - - // --news-icon: url("../static/icons/news.svg"); - // --news-white-icon: url("../static/icons/news-white.svg"); - - // --creative-icon: url("../static/icons/creative.svg"); - // --creative-white-icon: url("../static/icons/creative-white.svg"); - - // --heart-icon: url("../static/icons/heart.svg"); - // --heart-white-icon: url("../static/icons/heart-white.svg"); - - // --tech-icon: url("../static/icons/tech.svg"); - // --tech-white-icon: url("../static/icons/tech-white.svg"); - - // --politics-icon: url("../static/icons/politics.svg"); - // --politics-white-icon: url("../static/icons/politics-white.svg"); + --nfd-publish-icon: url(../static/icons/publish.svg); + --nfd-selling-icon: url(../static/icons/sell.svg); + --nfd-design-icon: url(../static/icons/design.svg); + --more-icon: url(../static/icons/more.svg); + --reload-icon: url(../static/icons/reload.svg); + --forward-icon: url(../static/icons/forward.svg); + --back-icon: url(../static/icons/back.svg); + --chevron-up-icon: url(../static/icons/chevron-up.svg); + --chevron-down-icon: url(../static/icons/chevron-down.svg); + --default-logo-icon: url(../static/icons/default-logo.svg); + --facebook-icon: url(../static/icons/social/facebook.svg); + --facebook-colored-icon: url(../static/icons/social/facebook-colored.svg); + --twitter-icon: url(../static/icons/social/twitter.svg); + --twitter-colored-icon: url(../static/icons/social/twitter-colored.svg); + --instagram-icon: url(../static/icons/social/instagram.svg); + --instagram-colored-icon: url(../static/icons/social/instagram-colored.svg); + --linkedin-icon: url(../static/icons/social/linkedin.svg); + --linkedin-colored-icon: url(../static/icons/social/linkedin-colored.svg); + --yelp-icon: url(../static/icons/social/yelp.svg); + --yelp-colored-icon: url(../static/icons/social/yelp-colored.svg); + --youtube-icon: url(../static/icons/social/youtube.svg); + --youtube-colored-icon: url(../static/icons/social/youtube-colored.svg); + --tiktok-icon: url(../static/icons/social/tiktok.svg); + --tiktok-colored-icon: url(../static/icons/social/tiktok-colored.svg); + + --get-started-content-img: url(../static/images/content.png); + --get-started-design-img: url(../static/images/design.png); + --get-started-features-img: url(../static/images/features.png); + + + --chevron-left-icon: url(../static/icons/chevron-left.svg); + --chevron-right-icon: url(../static/icons/chevron-right.svg); + + --business-icon: url(../static/icons/business.svg); + --business-white-icon: url(../static/icons/business-white.svg); + --nfd-onboarding-step-error-icon: url(../../Brands/bluehost/step-error-logo.svg); + + --nfd-onboarding-sidebar-learn-more-get-started-welcome-illustration: url(../static/icons/learn-more-get-started-welcome.svg); + --nfd-onboarding-sidebar-learn-more-get-started-wp-experience-illustration: url(../static/icons/learn-more-get-started-wp-experience.svg); + --nfd-onboarding-sidebar-learn-more-get-started-site-type-illustration: url(../static/icons/learn-more-get-started-site-type.svg); + --nfd-onboarding-sidebar-learn-more-ecommerce-address-illustration: url(../static/icons/learn-more-ecommerce-address.svg); + --nfd-onboarding-sidebar-learn-more-ecommerce-tax-info-illustration: url(../static/icons/learn-more-ecommerce-tax-info.svg); + --nfd-onboarding-sidebar-learn-more-ecommerce-products-illustration: url(../static/icons/learn-more-ecommerce-products.svg); + --nfd-onboarding-sidebar-learn-more-basic-info-illustration: url(../static/icons/learn-more-basic-info.svg); + --nfd-onboarding-sidebar-learn-more-design-theme-styles-illustration: url(../static/icons/learn-more-design-theme-styles.svg); + --nfd-onboarding-sidebar-learn-more-design-colors-illustration: url(../static/icons/learn-more-design-colors.svg); + --nfd-onboarding-sidebar-learn-more-design-typography-illustration: url(../static/icons/learn-more-design-typography.svg); + --nfd-onboarding-sidebar-learn-more-design-header-menu-illustration: url(../static/icons/learn-more-design-header-menu.svg); + --nfd-onboarding-sidebar-learn-more-design-homepage-illustration: url(../static/icons/learn-more-design-homepage.svg); + --nfd-onboarding-sidebar-learn-more-pages-illustration: url(../static/icons/learn-more-pages.svg); + --nfd-onboarding-sidebar-learn-more-site-features-illustration: url(../static/icons/learn-more-site-features.svg); + --nfd-onboarding-sidebar-learn-more-what-next-illustration: url(../static/icons/learn-more-what-next.svg); + + --site-features-analytics: url(../static/icons/site-features/analytics.svg); + --site-features-analytics--light: url(../static/icons/site-features/analytics_light.svg); + --site-features-bookingcalendar: url(../static/icons/site-features/bookingcalendar.svg); + --site-features-bookingcalendar--light: url(../static/icons/site-features/bookingcalendar_light.svg); + --site-features-email: url(../static/icons/site-features/email.svg); + --site-features-email--light: url(../static/icons/site-features/email_light.svg); + --site-features-filter: url(../static/icons/site-features/filter.svg); + --site-features-filter--light: url(../static/icons/site-features/filter_light.svg); + --site-features-form: url(../static/icons/site-features/form.svg); + --site-features-form--light: url(../static/icons/site-features/form_light.svg); + --site-features-lead: url(../static/icons/site-features/lead.svg); + --site-features-lead--light: url(../static/icons/site-features/lead_light.svg); + --site-features-search: url(../static/icons/site-features/search.svg); + --site-features-search--light: url(../static/icons/site-features/search_light.svg); + --site-features-security: url(../static/icons/site-features/security.svg); + --site-features-security--light: url(../static/icons/site-features/security_light.svg); + --site-features-share: url(../static/icons/site-features/share.svg); + --site-features-share--light: url(../static/icons/site-features/share_light.svg); + --site-features-wishlist: url(../static/icons/site-features/wishlist.svg); + --site-features-wishlist--light: url(../static/icons/site-features/wishlist_light.svg); } From 3cc460b68ad1005a02f7488e5156ae06fc14393c Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Mon, 6 Mar 2023 16:11:32 +0530 Subject: [PATCH 11/24] hide crazy domains sidebar illustrations, add dynamic brand config to handle sidebar views --- includes/Data/Brands.php | 14 +++- .../bluehost}/learn-more-basic-info.svg | 0 .../bluehost}/learn-more-design-colors.svg | 0 .../learn-more-design-header-menu.svg | 0 .../bluehost}/learn-more-design-homepage.svg | 0 .../learn-more-design-theme-styles.svg | 0 .../learn-more-design-typography.svg | 0 .../learn-more-ecommerce-address.svg | 0 .../learn-more-ecommerce-products.svg | 0 .../learn-more-ecommerce-tax-info.svg | 0 .../learn-more-get-started-site-type.svg | 0 .../learn-more-get-started-welcome.svg | 0 .../learn-more-get-started-wp-experience.svg | 0 .../bluehost}/learn-more-pages.svg | 0 .../bluehost}/learn-more-site-features.svg | 0 .../bluehost}/learn-more-what-next.svg | 0 .../LearnMore/IllustrationPanel/index.js | 8 ++- .../LearnMore/Skeleton/SidebarSkeleton.js | 26 ++++++-- .../BasicInfo/Sidebar/LearnMore/index.js | 8 ++- .../DesignColors/Sidebar/LearnMore/index.js | 7 +- .../Sidebar/LearnMore/index.js | 7 +- .../Sidebar/LearnMore/index.js | 7 +- .../Menu/Sidebar/LearnMore/index.js | 6 +- .../Preview/Sidebar/LearnMore/index.js | 6 +- .../Sidebar/LearnMore/index.js | 6 +- .../StepAddress/Sidebar/LearnMore/index.js | 8 ++- .../StepProducts/Sidebar/LearnMore/index.js | 8 ++- .../StepTax/Sidebar/LearnMore/index.js | 6 +- .../Sidebar/LearnMore/index.js | 6 +- .../PrimarySite/Sidebar/LearnMore/index.js | 7 +- .../SecondarySite/Sidebar/LearnMore/index.js | 10 +-- .../Welcome/Sidebar/LearnMore/index.js | 6 +- .../SiteFeatures/Sidebar/LearnMore/index.js | 6 +- .../SitePages/Sidebar/LearnMore/index.js | 6 +- .../Steps/WhatNext/Sidebar/LearnMore/index.js | 9 +-- src/OnboardingSPA/store/selectors.js | 66 +++++++++++-------- src/OnboardingSPA/styles/_branding.scss | 16 +++++ src/OnboardingSPA/styles/_icons.scss | 16 ----- 38 files changed, 164 insertions(+), 101 deletions(-) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-basic-info.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-design-colors.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-design-header-menu.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-design-homepage.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-design-theme-styles.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-design-typography.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-ecommerce-address.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-ecommerce-products.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-ecommerce-tax-info.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-get-started-site-type.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-get-started-welcome.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-get-started-wp-experience.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-pages.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-site-features.svg (100%) rename src/{OnboardingSPA/static/icons => Brands/bluehost}/learn-more-what-next.svg (100%) diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index bc00db949..068de2e6f 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -66,6 +66,7 @@ public static function get_brands() { 'utm_medium' => 'brand-plugin', ), ), + 'config' => array(), ), 'bluehost-india' => array( 'brand' => 'bluehost-india', @@ -112,6 +113,7 @@ public static function get_brands() { 'utm_medium' => 'brand-plugin', ), ), + 'config' => array(), ), 'webcom' => array( 'brand' => 'webcom', @@ -163,8 +165,9 @@ public static function get_brands() { 'utm_medium' => '', ), ), + 'config' => array(), ), - 'crazy-domains' => array( + 'crazy-domains' => array( 'brand' => 'crazy-domains', 'name' => 'Crazy Domains', 'url' => 'https://www.crazydomains.com', @@ -213,6 +216,15 @@ public static function get_brands() { 'utm_medium' => 'brand-plugin', ), ), + 'config' => array( + 'views' => array( + 'sidebar' => array( + 'illustration' => array( + 'shown' => false, + ), + ), + ), + ), ), ); } diff --git a/src/OnboardingSPA/static/icons/learn-more-basic-info.svg b/src/Brands/bluehost/learn-more-basic-info.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-basic-info.svg rename to src/Brands/bluehost/learn-more-basic-info.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-design-colors.svg b/src/Brands/bluehost/learn-more-design-colors.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-design-colors.svg rename to src/Brands/bluehost/learn-more-design-colors.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-design-header-menu.svg b/src/Brands/bluehost/learn-more-design-header-menu.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-design-header-menu.svg rename to src/Brands/bluehost/learn-more-design-header-menu.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-design-homepage.svg b/src/Brands/bluehost/learn-more-design-homepage.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-design-homepage.svg rename to src/Brands/bluehost/learn-more-design-homepage.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-design-theme-styles.svg b/src/Brands/bluehost/learn-more-design-theme-styles.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-design-theme-styles.svg rename to src/Brands/bluehost/learn-more-design-theme-styles.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-design-typography.svg b/src/Brands/bluehost/learn-more-design-typography.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-design-typography.svg rename to src/Brands/bluehost/learn-more-design-typography.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-ecommerce-address.svg b/src/Brands/bluehost/learn-more-ecommerce-address.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-ecommerce-address.svg rename to src/Brands/bluehost/learn-more-ecommerce-address.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-ecommerce-products.svg b/src/Brands/bluehost/learn-more-ecommerce-products.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-ecommerce-products.svg rename to src/Brands/bluehost/learn-more-ecommerce-products.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-ecommerce-tax-info.svg b/src/Brands/bluehost/learn-more-ecommerce-tax-info.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-ecommerce-tax-info.svg rename to src/Brands/bluehost/learn-more-ecommerce-tax-info.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-get-started-site-type.svg b/src/Brands/bluehost/learn-more-get-started-site-type.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-get-started-site-type.svg rename to src/Brands/bluehost/learn-more-get-started-site-type.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-get-started-welcome.svg b/src/Brands/bluehost/learn-more-get-started-welcome.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-get-started-welcome.svg rename to src/Brands/bluehost/learn-more-get-started-welcome.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-get-started-wp-experience.svg b/src/Brands/bluehost/learn-more-get-started-wp-experience.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-get-started-wp-experience.svg rename to src/Brands/bluehost/learn-more-get-started-wp-experience.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-pages.svg b/src/Brands/bluehost/learn-more-pages.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-pages.svg rename to src/Brands/bluehost/learn-more-pages.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-site-features.svg b/src/Brands/bluehost/learn-more-site-features.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-site-features.svg rename to src/Brands/bluehost/learn-more-site-features.svg diff --git a/src/OnboardingSPA/static/icons/learn-more-what-next.svg b/src/Brands/bluehost/learn-more-what-next.svg similarity index 100% rename from src/OnboardingSPA/static/icons/learn-more-what-next.svg rename to src/Brands/bluehost/learn-more-what-next.svg diff --git a/src/OnboardingSPA/components/Sidebar/components/LearnMore/IllustrationPanel/index.js b/src/OnboardingSPA/components/Sidebar/components/LearnMore/IllustrationPanel/index.js index 418c44f21..e7b3eb70e 100644 --- a/src/OnboardingSPA/components/Sidebar/components/LearnMore/IllustrationPanel/index.js +++ b/src/OnboardingSPA/components/Sidebar/components/LearnMore/IllustrationPanel/index.js @@ -3,10 +3,12 @@ import { PanelBody } from '@wordpress/components'; const IllustrationPanel = ( { cssIcon = 'nfd-onboarding-sidebar-learn-more-get-started-welcome-illustration', baseClassName = 'nfd-onboarding-sidebar-learn-more--illustration-panel', - backgroundPosition = 'center' + backgroundPosition = 'center', } ) => { + const iconExists = window.getComputedStyle( document.body ).getPropertyValue( `--${ cssIcon }` ) !== ''; + return ( - @@ -18,7 +20,7 @@ const IllustrationPanel = ( { height: '100%', backgroundSize: 'contain', backgroundRepeat: 'no-repeat', - backgroundPosition: backgroundPosition, + backgroundPosition, } } >
diff --git a/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js b/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js index 24434aa27..1f38fbc26 100644 --- a/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js +++ b/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js @@ -1,7 +1,17 @@ +import { useSelect } from '@wordpress/data'; +import { Fragment } from '@wordpress/element'; + import Animate from '../../../../Animate'; +import { store as nfdOnboardingStore } from '../../../../../store'; /** Skeleton Structure for the SideBar */ const SidebarSkeleton = () => { + const { brandConfig } = useSelect( ( select ) => { + return { + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); + return (
@@ -27,13 +37,15 @@ const SidebarSkeleton = () => {
-
- -
-
+ { brandConfig?.views?.sidebar?.illustration?.shown !== false && +
+ +
+
+ }
); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -47,7 +48,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } { - ( window.open( content.help.fullService.link, '_blank') ) + ( window.open( content.help.fullService.link, '_blank' ) ) } /> ); const LearnMore = () => { - - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -47,7 +47,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -47,7 +47,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -47,7 +47,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -51,7 +52,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -51,7 +52,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -45,7 +46,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -51,7 +52,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } { - ( window.open( content.help.fullService.link, '_blank') ) + ( window.open( content.help.fullService.link, '_blank' ) ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -51,7 +52,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } { - ( window.open( content.help.fullService.link, '_blank') ) + ( window.open( content.help.fullService.link, '_blank' ) ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), @@ -44,6 +44,7 @@ const LearnMore = () => { select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -60,7 +61,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: @@ -43,6 +43,7 @@ const LearnMore = () => { select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -56,7 +57,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -51,7 +51,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); - return (
{ subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } { - ( window.open( content.help.fullService.link, '_blank') ) + ( window.open( content.help.fullService.link, '_blank' ) ) } /> ); const LearnMore = () => { - const { brandName, expertsLink, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, expertsLink, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), expertsLink: select( nfdOnboardingStore ).getExpertsUrl(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -55,7 +56,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -47,7 +48,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -45,7 +46,8 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + } ); const LearnMore = () => { - - const { brandName, techSupportLink, fullServiceCreativeTeamLink } = useSelect( ( select ) => { + const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); @@ -48,11 +48,12 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> + { brandConfig?.views?.sidebar?.illustration?.shown !== false && + backgroundPosition={ 'right bottom' } + /> } Date: Mon, 6 Mar 2023 16:16:54 +0530 Subject: [PATCH 12/24] fix list issues --- .../Steps/GetStarted/Welcome/Sidebar/LearnMore/index.js | 2 +- src/OnboardingSPA/store/selectors.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/OnboardingSPA/pages/Steps/GetStarted/Welcome/Sidebar/LearnMore/index.js b/src/OnboardingSPA/pages/Steps/GetStarted/Welcome/Sidebar/LearnMore/index.js index 5b2603b21..0788b88e6 100644 --- a/src/OnboardingSPA/pages/Steps/GetStarted/Welcome/Sidebar/LearnMore/index.js +++ b/src/OnboardingSPA/pages/Steps/GetStarted/Welcome/Sidebar/LearnMore/index.js @@ -56,7 +56,7 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && + { brandConfig?.views?.sidebar?.illustration?.shown !== false && } Date: Mon, 6 Mar 2023 16:44:34 +0530 Subject: [PATCH 13/24] use brand from plugin container --- bootstrap.php | 7 +++++++ includes/Data/Data.php | 28 +++++++++++----------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/bootstrap.php b/bootstrap.php index bdd6f1d3d..fce9c4bd4 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -33,6 +33,13 @@ function nfd_wp_module_onboarding_register() { if ( ! defined( 'NFD_ONBOARDING_BUILD_URL' && defined( 'NFD_ONBOARDING_VERSION' ) ) ) { define( 'NFD_ONBOARDING_BUILD_URL', $container->plugin()->url . '/vendor/newfold-labs/wp-module-onboarding/build/' . NFD_ONBOARDING_VERSION ); } + if ( ! defined( 'NFD_ONBOARDING_PLUGIN_BRAND' ) ) { + $brand = $container->plugin()->brand; + if ( empty( $brand ) ) { + $brand = 'newfold'; + } + define( 'NFD_ONBOARDING_PLUGIN_BRAND', sanitize_title_with_dashes( str_replace( '_', '-', $brand ) ) ); + } // Instantiate Onboarding Module Application new Application( $container ); }, diff --git a/includes/Data/Data.php b/includes/Data/Data.php index 8a29b2143..1a131b516 100644 --- a/includes/Data/Data.php +++ b/includes/Data/Data.php @@ -36,17 +36,11 @@ public static function runtime() { * @return array */ public static function current_brand() { - - $brand = \get_option( Options::get_option_name( 'brand', false ), 'newfold' ); - // This case arises when the option mm_brand exists but has an empty string as it's value. - if ( empty( $brand ) ) { - $brand = 'newfold'; - } - $brand = \apply_filters( 'nfd_module_onboarding_brand', sanitize_title_with_dashes( str_replace( '_', '-', $brand ) ) ); - $brands = Brands::get_brands(); - return array_key_exists( $brand, $brands ) ? $brands[ $brand ] : array( 'brand' => $brand ); + return array_key_exists( NFD_ONBOARDING_PLUGIN_BRAND, $brands ) ? + $brands[ NFD_ONBOARDING_PLUGIN_BRAND ] : + array( 'brand' => NFD_ONBOARDING_PLUGIN_BRAND ); } @@ -60,11 +54,11 @@ public static function current_plan() { $current_flow = Flows::get_flow_from_customer_data( $customer_data ); if ( false !== $current_flow ) { - return array( - 'flow' => $current_flow, - 'subtype' => $customer_data['plan_subtype'], - 'type' => $customer_data['plan_type'], - ); + return array( + 'flow' => $current_flow, + 'subtype' => $customer_data['plan_subtype'], + 'type' => $customer_data['plan_type'], + ); } $current_flow = Flows::get_flow_from_params(); @@ -128,9 +122,9 @@ public static function current_flow() { */ public static function customer_data() { if ( class_exists( 'NewfoldLabs\WP\Module\CustomerBluehost\CustomerBluehost' ) ) { - return CustomerBluehost::collect(); + return CustomerBluehost::collect(); } - return array(); + return array(); } -} // END \NewfoldLabs\WP\Module\Onboarding\Data() +} From 8dd28dab8f88f1b83d4a14e0d82a22b5bf359397 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Mon, 6 Mar 2023 17:57:50 +0530 Subject: [PATCH 14/24] add the correct plugin dashboard redirect --- includes/Data/Brands.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index 908eb7de2..45710a62a 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -166,7 +166,7 @@ public static function get_brands() { ), ), ), - 'crazy-domains' => array( + 'crazy-domains' => array( 'brand' => 'crazy-domains', 'name' => 'Crazy Domains', 'url' => 'https://www.crazydomains.com', @@ -181,6 +181,7 @@ public static function get_brands() { 'accountUrl' => 'https://www.crazydomains.com/my-account/home/', 'domainsUrl' => '', 'emailUrl' => 'https://www.crazydomains.com/contact/', + 'pluginDashboardPage' => \admin_url( 'admin.php?page=crazy-domains' ), 'phoneNumbers' => array( 'support' => '2135592459', ), From 0363c7b3f679d871c1e3b05340ee2b4c13afba1e Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Wed, 8 Mar 2023 11:54:28 +0530 Subject: [PATCH 15/24] match site pages and features box shadows --- .../CheckboxTemplate/CheckboxItem/stylesheet.scss | 2 +- src/OnboardingSPA/pages/Steps/SitePages/stylesheet.scss | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss index 7f813c969..fa438ee21 100644 --- a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss +++ b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/stylesheet.scss @@ -131,6 +131,6 @@ $box-shadow: var(--nfd-onboarding-light-gray-highlighted); border-left: 1px solid rgba($main-color, 0.1); border-right: 1px solid rgba($main-color, 0.1); border-bottom: 1px solid rgba($main-color, 0.1); - box-shadow: 0 11px 8px -3px rgba($main-color, 0.2); + box-shadow: 0 11px 8px -3px rgba($main-color, 0.37); } } diff --git a/src/OnboardingSPA/pages/Steps/SitePages/stylesheet.scss b/src/OnboardingSPA/pages/Steps/SitePages/stylesheet.scss index 1782121a6..926be2323 100644 --- a/src/OnboardingSPA/pages/Steps/SitePages/stylesheet.scss +++ b/src/OnboardingSPA/pages/Steps/SitePages/stylesheet.scss @@ -106,14 +106,14 @@ flex-direction: column; justify-content: flex-start; width: 100%; - border-left: 1px solid #e3dfdf; - border-right: 1px solid #e3dfdf; - border-bottom: 1px solid #e3dfdf; + border-left: 1px solid rgba(var(--nfd-onboarding-highlighted--rgb), 0.1); + border-right: 1px solid rgba(var(--nfd-onboarding-highlighted--rgb), 0.1); + border-bottom: 1px solid rgba(var(--nfd-onboarding-highlighted--rgb), 0.1); border-top: none; margin: 0 0; height: 50px; transform-origin: top center; - box-shadow: 0 11px 8px -3px rgba(88, 124, 175, 0.37); + box-shadow: 0 11px 8px -3px rgba(var(--nfd-onboarding-highlighted--rgb), 0.37); } From cdadd52fbb82c261ff62fd84c918a0a36b4d6cf0 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 10 Mar 2023 21:08:27 +0530 Subject: [PATCH 16/24] fallback to install_date when signup_date does not exist in customer data, improve module controller code --- bootstrap.php | 7 --- includes/Data/Brands.php | 31 ++++++++-- includes/Data/Data.php | 2 - includes/ModuleController.php | 107 +++++++++++++++++++++++----------- 4 files changed, 99 insertions(+), 48 deletions(-) diff --git a/bootstrap.php b/bootstrap.php index 1ffa66038..d0babd565 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -33,13 +33,6 @@ function nfd_wp_module_onboarding_register() { if ( ! defined( 'NFD_ONBOARDING_BUILD_URL' && defined( 'NFD_ONBOARDING_VERSION' ) ) ) { define( 'NFD_ONBOARDING_BUILD_URL', $container->plugin()->url . '/vendor/newfold-labs/wp-module-onboarding/build/' . NFD_ONBOARDING_VERSION ); } - if ( ! defined( 'NFD_ONBOARDING_PLUGIN_BRAND' ) ) { - $brand = $container->plugin()->brand; - if ( empty( $brand ) ) { - $brand = 'newfold'; - } - define( 'NFD_ONBOARDING_PLUGIN_BRAND', sanitize_title_with_dashes( str_replace( '_', '-', $brand ) ) ); - } // Instantiate Onboarding Module Application new Application( $container ); }, diff --git a/includes/Data/Brands.php b/includes/Data/Brands.php index c0bb57a91..4e8620fd6 100644 --- a/includes/Data/Brands.php +++ b/includes/Data/Brands.php @@ -67,7 +67,9 @@ public static function get_brands() { 'utm_medium' => 'brand-plugin', ), ), - 'config' => array(), + 'config' => array( + 'net_new_signup_date_threshold' => '2022-08-18T15:30:00.000Z', + ), ), 'bluehost-india' => array( 'brand' => 'bluehost-india', @@ -118,7 +120,9 @@ public static function get_brands() { 'utm_medium' => 'brand-plugin', ), ), - 'config' => array(), + 'config' => array( + 'net_new_signup_date_threshold' => '2022-08-18T15:30:00.000Z', + ), ), 'webcom' => array( 'brand' => 'webcom', @@ -170,7 +174,9 @@ public static function get_brands() { 'utm_medium' => '', ), ), - 'config' => array(), + 'config' => array( + 'net_new_signup_date_threshold' => '2022-08-18T15:30:00.000Z', + ), ), 'crazy-domains' => array( 'brand' => 'crazy-domains', @@ -223,7 +229,8 @@ public static function get_brands() { ), ), 'config' => array( - 'views' => array( + 'net_new_signup_date_threshold' => '2022-08-18T15:30:00.000Z', + 'views' => array( 'sidebar' => array( 'illustration' => array( 'shown' => false, @@ -234,4 +241,20 @@ public static function get_brands() { ), ); } + + /** + * Sets the hosting brand for which Onboarding is active. + * + * @param array $container The brand plugin container. + * @return void + */ + public static function set_current_brand( $container ) { + if ( ! defined( 'NFD_ONBOARDING_PLUGIN_BRAND' ) ) { + $brand = $container->plugin()->brand; + if ( empty( $brand ) ) { + $brand = 'newfold'; + } + define( 'NFD_ONBOARDING_PLUGIN_BRAND', sanitize_title_with_dashes( str_replace( '_', '-', $brand ) ) ); + } + } } diff --git a/includes/Data/Data.php b/includes/Data/Data.php index 1a131b516..ea316b139 100644 --- a/includes/Data/Data.php +++ b/includes/Data/Data.php @@ -31,8 +31,6 @@ public static function runtime() { /** * Establish brand to apply to Onboarding experience. * - * [TODO]: Pull brand from container. - * * @return array */ public static function current_brand() { diff --git a/includes/ModuleController.php b/includes/ModuleController.php index 49b93584c..5ec609efd 100644 --- a/includes/ModuleController.php +++ b/includes/ModuleController.php @@ -3,10 +3,12 @@ use NewfoldLabs\WP\Module\Onboarding\Data\Data; use NewfoldLabs\WP\Module\Onboarding\Data\Flows; - +use NewfoldLabs\WP\Module\Onboarding\Data\Options; +use NewfoldLabs\WP\Module\Onboarding\Data\Brands; use NewfoldLabs\WP\ModuleLoader\ModuleRegistry; use function NewfoldLabs\WP\ModuleLoader\activate; use function NewfoldLabs\WP\ModuleLoader\deactivate; +use function NewfoldLabs\WP\ModuleLoader\container; /** @@ -18,24 +20,23 @@ class ModuleController { * Initialize the Module Controller functionality. */ public static function init() { - // Check the conditions after the step_theme loads as only after that the moudle had been registered prior - add_action( 'after_setup_theme', array( __CLASS__, 'module_switcher' ), 10, 0 ); + // Enable/Disable the module after_setup_theme. + \add_action( 'after_setup_theme', array( __CLASS__, 'module_switcher' ), 10, 0 ); } /** - * Check if the user is a valid Ecommerce and subsequently enable/disable modules + * Enable/Disable Onboarding based on certain checks. */ public static function module_switcher() { - $module_name = 'onboarding'; - $customer_data = Data::customer_data(); + $module_name = 'onboarding'; - // Sample data for Testing - // $customer_data['plan_subtype'] = 'wc_standard'; - // $customer_data['signup_date'] = '2022-08-18T15:30:00.000Z'; + // Set brand context for the module. + Brands::set_current_brand( container() ); + $customer_data = Data::customer_data(); // Check if he is a Non-Ecom Cust and Disable Redirect and Module - if ( ! self::is_ecom_customer( $customer_data ) ) { + if ( ! self::is_new_commerce_signup( $customer_data ) ) { // Check if the Module Does Exist if ( ModuleRegistry::get( $module_name ) ) { @@ -59,43 +60,79 @@ public static function module_switcher() { } /** - * Get the current customer data using the Bluehost customer data module. + * Get signup date of the install. * - * @param array $customer_data The customer data to be parsed. - * @return boolean + * @param array $customer_data The customer data to be checked for signup date. + * @return string|boolean */ - public static function is_ecom_customer( $customer_data ) { + public static function get_signup_date( $customer_data ) { + // Get the signup_date from customer data. + if ( isset( $customer_data['signup_date'] ) ) { + return gmdate( 'Y-m-d H:i:s', strtotime( $customer_data['signup_date'] ) ); + } + + // Get the signup_date from the container's install_date. + if ( ! empty( container()->plugin()->install_date ) ) { + return gmdate( 'Y-m-d H:i:s', container()->plugin()->install_date ); + } + + // Get the signup_date from the mm_install_date option. + $install_date = \get_option( Options::get_option_name( 'install_date', false ), false ); + if ( false !== $install_date ) { + return gmdate( 'Y-m-d H:i:s', strtotime( $install_date ) ); + } + return false; + } + + /** + * Determine if the install is a new commerce signup + * + * @param array $customer_data The site's customer data. + * @return boolean + */ + public static function is_new_commerce_signup( $customer_data ) { + // Determine if the flow=ecommerce param is set. if ( isset( $_GET['flow'] ) && 'ecommerce' === \sanitize_text_field( $_GET['flow'] ) ) { return true; } - // August 18 - $new_cust_date = gmdate( 'Y-m-d H:i:s', strtotime( '2022-08-18T15:30:00.000Z' ) ); - - if ( isset( $customer_data['signup_date'] ) ) { + // Determine if the install is on a commerce plan (or) has Woocommerce active (commerce priority). + $is_commerce = false; + if ( isset( $customer_data['plan_subtype'] ) ) { + $is_commerce = Flows::is_ecommerce_plan( $customer_data['plan_subtype'] ); + } + if ( ! $is_commerce ) { + $is_commerce = Flows::is_commerce_priority(); + } + if ( ! $is_commerce ) { + return false; + } - // Convert the Customer Signup Date to a Php known format - $cust_signup_date = gmdate( 'Y-m-d H:i:s', strtotime( $customer_data['signup_date'] ) ); + /* + Get the net new signup date threshold from the brand configuration. + As a safety measure, return false if a threshold is not set for a particular brand. + */ + $current_brand = Data::current_brand(); + if ( ! isset( $current_brand['config']['net_new_signup_date_threshold'] ) ) { + return false; + } + $net_new_signup_date_threshold = gmdate( 'Y-m-d H:i:s', strtotime( $current_brand['config']['net_new_signup_date_threshold'] ) ); - // Check if the Customer is a new Customer - $is_new_cust = $cust_signup_date >= $new_cust_date; + // Get the actual signup date of the install. + $signup_date = self::get_signup_date( $customer_data ); - // Check if the Customer has an Ecom Plan - $has_ecom_plan = false; - if ( isset( $customer_data['plan_subtype'] ) ) { - $has_ecom_plan = Flows::is_ecommerce_plan( $customer_data['plan_subtype'] ); - } - if ( ! $has_ecom_plan ) { - $has_ecom_plan = Flows::is_commerce_priority(); - } + // As a safety measure, return false if a signup date cannot be determined. + if ( false === $signup_date ) { + return false; + } - if ( $has_ecom_plan && $is_new_cust ) { - return true; - } + // Determine whether the commerce install is a net new signup. + $is_net_new_signup = $signup_date >= $net_new_signup_date_threshold; + if ( ! $is_net_new_signup ) { + return false; } - // If the Customer is not a Ecommerce Customer or is an Old Customer - return false; + return true; } } From 902e47fa143b819ef99f1b7d459ee3d188d39acc Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Tue, 28 Mar 2023 12:32:03 +0530 Subject: [PATCH 17/24] add shippo and paypal to wc_priority flow for crazy domains --- includes/Data/Plugins.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/includes/Data/Plugins.php b/includes/Data/Plugins.php index 4c102e249..7e63d0b88 100644 --- a/includes/Data/Plugins.php +++ b/includes/Data/Plugins.php @@ -98,7 +98,7 @@ final class Plugins { 'url' => 'https://hiive.cloud/workers/plugin-downloads/yith-woocommerce-wishlist', 'path' => 'yith-woocommerce-wishlist-extended/init.php', ), - 'nfd_slug_woo_razorpay' => array( + 'nfd_slug_woo_razorpay' => array( 'approved' => true, 'url' => 'https://hiive.cloud/workers/plugin-downloads/razorpay', 'path' => 'woo-razorpay/woo-razorpay.php', @@ -273,6 +273,20 @@ final class Plugins { ), 'wc_priority' => array(), ), + 'crazy-domains' => array( + 'wc_priority' => array( + array( + 'slug' => 'nfd_slug_yith_shippo_shippings_for_woocommerce', + 'activate' => true, + 'priority' => 259, + ), + array( + 'slug' => 'nfd_slug_yith_paypal_payments_for_woocommerce', + 'activate' => true, + 'priority' => 258, + ), + ), + ), ), ); From 2b1f4ad140ea2c97107ddfea42a756e075a2b4a5 Mon Sep 17 00:00:00 2001 From: David Ryan Date: Thu, 30 Mar 2023 10:20:15 -0700 Subject: [PATCH 18/24] New color tokens from UX --- src/OnboardingSPA/styles/_branding.scss | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index 6938f8069..e7dd36876 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -117,22 +117,22 @@ body { } &.nfd-brand-crazy-domains { - --wp-admin-theme-color: #6fac2f; - --wp-admin-theme-color--rgb: 111, 172, 47; - --wp-admin-theme-color-darker-10: #568f1b; - --wp-admin-theme-color-darker-10--rgb: 86, 143, 27; - --wp-admin-theme-color-darker-20: #484848; - --wp-admin-theme-color-darker-20--rgb: 72, 72, 72; + --wp-admin-theme-color: #0D8821; + --wp-admin-theme-color--rgb: 13, 136, 33; + --wp-admin-theme-color-darker-10: #0c7a1e; + --wp-admin-theme-color-darker-10--rgb: 12, 122, 30; + --wp-admin-theme-color-darker-20: #0a6d1a; + --wp-admin-theme-color-darker-20--rgb: 10, 109, 26; --nfd-onboarding-dark-icon: url(../../Brands/crazy-domains/icon-z.svg); --nfd-onboarding-icon: url(../../Brands/crazy-domains/icon.svg); --nfd-onboarding-logo: url(../../Brands/crazy-domains/logo.svg); --nfd-onboarding-primary: var(--wp-admin-theme-color); --nfd-onboarding-highlighted--rgb: var(--wp-admin-theme-color-darker-10--rgb); --nfd-onboarding-primary-alt: var(--wp-admin-theme-color-darker-10); - --nfd-onboarding-secondary: var(--wp-admin-theme-color-darker-10); - --nfd-onboarding-secondary-alt: var(--wp-admin-theme-color-darker-20); - --nfd-onboarding-tertiary: var(--nfd-onboarding-primary); - --nfd-onboarding-tertiary-alt: var(--nfd-onboarding-primary-alt); + --nfd-onboarding-secondary: #C3CBD8; + --nfd-onboarding-secondary-alt: #1D2A3B; + --nfd-onboarding-tertiary: #196BDE; + --nfd-onboarding-tertiary-alt: #C77D1C; --nfd-onboarding-light: #fff; --nfd-onboarding-light-gray: #f0f0f0; --nfd-onboarding-light-gray-2: #efefef; @@ -140,7 +140,7 @@ body { --nfd-onboarding-light-gray-4: #a7a7a7; --nfd-onboarding-light-gray-5: #eee; --nfd-onboarding-light-gray-highlighted: #e2e9f4; - --nfd-onboarding-dark: var(--wp-admin-theme-color-darker-20); + --nfd-onboarding-dark: #1D2A3B; --nfd-onboarding-border: 219, 219, 219; --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-tertiary); --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-light); From 6dd9b5f07ffee13bab4f89ff922f0c3ce0531b85 Mon Sep 17 00:00:00 2001 From: David Ryan Date: Thu, 30 Mar 2023 12:48:06 -0700 Subject: [PATCH 19/24] fix hex lints --- src/OnboardingSPA/styles/_branding.scss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index e7dd36876..0e47c2892 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -117,7 +117,7 @@ body { } &.nfd-brand-crazy-domains { - --wp-admin-theme-color: #0D8821; + --wp-admin-theme-color: #0d8821; --wp-admin-theme-color--rgb: 13, 136, 33; --wp-admin-theme-color-darker-10: #0c7a1e; --wp-admin-theme-color-darker-10--rgb: 12, 122, 30; @@ -129,10 +129,10 @@ body { --nfd-onboarding-primary: var(--wp-admin-theme-color); --nfd-onboarding-highlighted--rgb: var(--wp-admin-theme-color-darker-10--rgb); --nfd-onboarding-primary-alt: var(--wp-admin-theme-color-darker-10); - --nfd-onboarding-secondary: #C3CBD8; - --nfd-onboarding-secondary-alt: #1D2A3B; - --nfd-onboarding-tertiary: #196BDE; - --nfd-onboarding-tertiary-alt: #C77D1C; + --nfd-onboarding-secondary: #c3cbd8; + --nfd-onboarding-secondary-alt: #1d2a3b; + --nfd-onboarding-tertiary: #196bde; + --nfd-onboarding-tertiary-alt: #c77d1c; --nfd-onboarding-light: #fff; --nfd-onboarding-light-gray: #f0f0f0; --nfd-onboarding-light-gray-2: #efefef; @@ -140,7 +140,7 @@ body { --nfd-onboarding-light-gray-4: #a7a7a7; --nfd-onboarding-light-gray-5: #eee; --nfd-onboarding-light-gray-highlighted: #e2e9f4; - --nfd-onboarding-dark: #1D2A3B; + --nfd-onboarding-dark: #1d2a3b; --nfd-onboarding-border: 219, 219, 219; --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-tertiary); --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-light); From 4c2f4430c1175071c93ee52003659eb6cc078127 Mon Sep 17 00:00:00 2001 From: David Ryan Date: Tue, 11 Apr 2023 16:00:34 -0700 Subject: [PATCH 20/24] push requested branding updates for team review --- src/Brands/crazy-domains/icon-empty.svg | 0 src/Brands/crazy-domains/icon-z.svg | 1 - src/Brands/crazy-domains/icon.svg | 2 +- src/OnboardingSPA/styles/_branding.scss | 81 +++++++++++++++++++++---- 4 files changed, 70 insertions(+), 14 deletions(-) create mode 100644 src/Brands/crazy-domains/icon-empty.svg delete mode 100644 src/Brands/crazy-domains/icon-z.svg diff --git a/src/Brands/crazy-domains/icon-empty.svg b/src/Brands/crazy-domains/icon-empty.svg new file mode 100644 index 000000000..e69de29bb diff --git a/src/Brands/crazy-domains/icon-z.svg b/src/Brands/crazy-domains/icon-z.svg deleted file mode 100644 index 2359b74e0..000000000 --- a/src/Brands/crazy-domains/icon-z.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Brands/crazy-domains/icon.svg b/src/Brands/crazy-domains/icon.svg index 1f38a2859..b39ce0458 100644 --- a/src/Brands/crazy-domains/icon.svg +++ b/src/Brands/crazy-domains/icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index 0e47c2892..2bde4a933 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -117,13 +117,13 @@ body { } &.nfd-brand-crazy-domains { - --wp-admin-theme-color: #0d8821; - --wp-admin-theme-color--rgb: 13, 136, 33; - --wp-admin-theme-color-darker-10: #0c7a1e; - --wp-admin-theme-color-darker-10--rgb: 12, 122, 30; - --wp-admin-theme-color-darker-20: #0a6d1a; - --wp-admin-theme-color-darker-20--rgb: 10, 109, 26; - --nfd-onboarding-dark-icon: url(../../Brands/crazy-domains/icon-z.svg); + --wp-admin-theme-color: #548224; + --wp-admin-theme-color--rgb: 84, 130, 36; + --wp-admin-theme-color-darker-10: #4c7520; + --wp-admin-theme-color-darker-10--rgb: 76, 117, 32; + --wp-admin-theme-color-darker-20: #43681d; + --wp-admin-theme-color-darker-20--rgb: 67, 104, 29; + --nfd-onboarding-dark-icon: url(../../Brands/crazy-domains/icon-empty.svg); --nfd-onboarding-icon: url(../../Brands/crazy-domains/icon.svg); --nfd-onboarding-logo: url(../../Brands/crazy-domains/logo.svg); --nfd-onboarding-primary: var(--wp-admin-theme-color); @@ -134,11 +134,11 @@ body { --nfd-onboarding-tertiary: #196bde; --nfd-onboarding-tertiary-alt: #c77d1c; --nfd-onboarding-light: #fff; - --nfd-onboarding-light-gray: #f0f0f0; - --nfd-onboarding-light-gray-2: #efefef; - --nfd-onboarding-light-gray-3: #f2f2f2; - --nfd-onboarding-light-gray-4: #a7a7a7; - --nfd-onboarding-light-gray-5: #eee; + --nfd-onboarding-light-gray: #fcfff9; + --nfd-onboarding-light-gray-2: #fcfff9; + --nfd-onboarding-light-gray-3: #fcfff9; + --nfd-onboarding-light-gray-4: #5c5c5c; + --nfd-onboarding-light-gray-5: var(--nfd-onboarding-light); --nfd-onboarding-light-gray-highlighted: #e2e9f4; --nfd-onboarding-dark: #1d2a3b; --nfd-onboarding-border: 219, 219, 219; @@ -151,5 +151,62 @@ body { --nfd-onboarding-step-what-next-img-3: url(../../Brands/crazy-domains/full-service.png); --nfd-onboarding-step-what-next-img-1: url(../../Brands/crazy-domains/wp-admin.png); --nfd-onboarding-step-what-next-img-2: url(../static/images/help.png); + + --nfd-onboarding-drawer-bg: var(--nfd-onboarding-light); + --nfd-onboarding-drawer-fg: var(--nfd-onboarding-dark); + --nfd-onboarding-content-bg: var(--nfd-onboarding-light); + + .nfd-onboarding-drawer__toggle { + background-color: transparent; + &-button { + background-color: transparent; + } + border-bottom: 1px solid #e0e0e0; + &.is-open { + border-bottom: none; + } + } + .nfd-onboarding-drawer__panel { + --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-light-gray-4); + --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-primary); + &-scroll-container { + border-right: 1px solid #e0e0e0; // mirror header border. + } + &-site-title { + color: var(--nfd-onboarding-light-gray-4); + } + &-menu-link { + color: var(--nfd-onboarding-light-gray-4); + &.active { + background-color: var(--nfd-onboarding-drawer-bg); + color: var(--nfd-onboarding-primary); + border-color: var(--nfd-onboarding-primary); + } + } + .custom-palette { + color: var(--nfd-onboarding-light); + } + .drawer-palette--button { + border: 1px solid var(--nfd-onboarding-secondary); + &:hover { + background-color: var(--nfd-onboarding-primary); + * { + color: var(--nfd-onboarding-light); + } + } + } + } + + .nfd-onboarding-layout { + &.is-bg-primary { + background-color: var(--nfd-onboarding-light); + } + .checkbox-item--selected { + background: rgba(var(--nfd-onboarding-highlighted--rgb), 0.05); + } + .tab-img { + background-color: rgba(var(--nfd-onboarding-highlighted--rgb), 0.2); + } + } } } From 005c71f5e8f1e4ea2f636a0c9d23df0ea445bfbf Mon Sep 17 00:00:00 2001 From: David Ryan Date: Tue, 11 Apr 2023 16:07:55 -0700 Subject: [PATCH 21/24] sass lint fixes --- src/OnboardingSPA/styles/_branding.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index 2bde4a933..57c2540eb 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -158,10 +158,13 @@ body { .nfd-onboarding-drawer__toggle { background-color: transparent; + &-button { background-color: transparent; } + border-bottom: 1px solid #e0e0e0; + &.is-open { border-bottom: none; } @@ -169,12 +172,15 @@ body { .nfd-onboarding-drawer__panel { --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-light-gray-4); --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-primary); + &-scroll-container { border-right: 1px solid #e0e0e0; // mirror header border. } + &-site-title { color: var(--nfd-onboarding-light-gray-4); } + &-menu-link { color: var(--nfd-onboarding-light-gray-4); &.active { @@ -183,9 +189,11 @@ body { border-color: var(--nfd-onboarding-primary); } } + .custom-palette { color: var(--nfd-onboarding-light); } + .drawer-palette--button { border: 1px solid var(--nfd-onboarding-secondary); &:hover { @@ -198,12 +206,15 @@ body { } .nfd-onboarding-layout { + &.is-bg-primary { background-color: var(--nfd-onboarding-light); } + .checkbox-item--selected { background: rgba(var(--nfd-onboarding-highlighted--rgb), 0.05); } + .tab-img { background-color: rgba(var(--nfd-onboarding-highlighted--rgb), 0.2); } From 41ee3207453f28c3616eab92632c4bfaff492ea4 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Wed, 12 Apr 2023 11:42:39 +0530 Subject: [PATCH 22/24] fix sass lint --- src/OnboardingSPA/styles/_branding.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index 57c2540eb..f85b9b32d 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -169,6 +169,7 @@ body { border-bottom: none; } } + .nfd-onboarding-drawer__panel { --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-light-gray-4); --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-primary); @@ -183,6 +184,7 @@ body { &-menu-link { color: var(--nfd-onboarding-light-gray-4); + &.active { background-color: var(--nfd-onboarding-drawer-bg); color: var(--nfd-onboarding-primary); @@ -196,8 +198,10 @@ body { .drawer-palette--button { border: 1px solid var(--nfd-onboarding-secondary); + &:hover { background-color: var(--nfd-onboarding-primary); + * { color: var(--nfd-onboarding-light); } @@ -206,7 +210,7 @@ body { } .nfd-onboarding-layout { - + &.is-bg-primary { background-color: var(--nfd-onboarding-light); } From 96515c3a724336eb50a8eb7771180db1915a0363 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 14 Apr 2023 18:44:41 +0530 Subject: [PATCH 23/24] combine variables --- src/OnboardingSPA/styles/_branding.scss | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss index f85b9b32d..feb4d6d1e 100644 --- a/src/OnboardingSPA/styles/_branding.scss +++ b/src/OnboardingSPA/styles/_branding.scss @@ -142,8 +142,8 @@ body { --nfd-onboarding-light-gray-highlighted: #e2e9f4; --nfd-onboarding-dark: #1d2a3b; --nfd-onboarding-border: 219, 219, 219; - --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-tertiary); - --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-light); + --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-light-gray-4); + --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-primary); --nfd-onboarding-loader-start: var(--nfd-onboarding-primary); --nfd-onboarding-loader-end: var(--nfd-onboarding-secondary); --nfd-onboarding-step-loader-icon: url(../../Brands/crazy-domains/step-loader-logo.svg); @@ -171,8 +171,6 @@ body { } .nfd-onboarding-drawer__panel { - --nfd-onboarding-drawer-icon-fill: var(--nfd-onboarding-light-gray-4); - --nfd-onboarding-drawer-icon-active-fill: var(--nfd-onboarding-primary); &-scroll-container { border-right: 1px solid #e0e0e0; // mirror header border. From 4a3f6cc1b8546d8d6c230d74b4faafa56fd5fbc5 Mon Sep 17 00:00:00 2001 From: arunshenoy99 Date: Fri, 14 Apr 2023 18:55:23 +0530 Subject: [PATCH 24/24] fix lint wrt new @wordpress/scripts standards --- .../CheckboxTemplate/CheckboxItem/index.js | 13 ++++--- .../LearnMore/IllustrationPanel/index.js | 39 +++++++++++-------- .../LearnMore/Skeleton/SidebarSkeleton.js | 20 +++++----- .../BasicInfo/Sidebar/LearnMore/index.js | 23 ++++++++--- .../DesignColors/Sidebar/LearnMore/index.js | 27 ++++++++----- .../Sidebar/LearnMore/index.js | 27 ++++++++----- .../Sidebar/LearnMore/index.js | 27 ++++++++----- .../Menu/Sidebar/LearnMore/index.js | 23 ++++++++--- .../Preview/Sidebar/LearnMore/index.js | 23 ++++++++--- .../Sidebar/LearnMore/index.js | 27 ++++++++----- .../StepAddress/Sidebar/LearnMore/index.js | 23 ++++++++--- .../StepProducts/Sidebar/LearnMore/index.js | 23 ++++++++--- .../StepTax/Sidebar/LearnMore/index.js | 32 ++++++++------- .../Sidebar/LearnMore/index.js | 15 +++---- .../PrimarySite/Sidebar/LearnMore/index.js | 25 +++++++----- .../SecondarySite/Sidebar/LearnMore/index.js | 27 ++++++++----- .../Welcome/Sidebar/LearnMore/index.js | 27 +++++++++---- .../SiteFeatures/Sidebar/LearnMore/index.js | 23 ++++++++--- .../SitePages/Sidebar/LearnMore/index.js | 27 ++++++++----- .../Steps/WhatNext/Sidebar/LearnMore/index.js | 33 +++++++++++----- .../pages/Steps/WhatNext/contents.js | 19 +++++---- .../pages/Steps/WhatNext/index.js | 30 +++++++------- src/constants.js | 4 +- 23 files changed, 361 insertions(+), 196 deletions(-) diff --git a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js index f0935d1a7..1b905e405 100644 --- a/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js +++ b/src/OnboardingSPA/components/CheckboxTemplate/CheckboxItem/index.js @@ -55,13 +55,14 @@ const CheckboxItem = ( {
{ - const iconExists = window.getComputedStyle( document.body ).getPropertyValue( `--${ cssIcon }` ) !== ''; + const iconExists = + window + .getComputedStyle( document.body ) + .getPropertyValue( `--${ cssIcon }` ) !== ''; return ( - iconExists && -
-
+ iconExists && ( + +
+
+ ) ); }; diff --git a/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js b/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js index 1f38fbc26..ff7b05f13 100644 --- a/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js +++ b/src/OnboardingSPA/components/Sidebar/components/LearnMore/Skeleton/SidebarSkeleton.js @@ -37,15 +37,17 @@ const SidebarSkeleton = () => {
- { brandConfig?.views?.sidebar?.illustration?.shown !== false && -
- -
-
- } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + +
+ +
+
+ + ) }
); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -48,8 +58,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -47,8 +53,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -47,8 +53,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -47,8 +53,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -52,8 +62,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -52,8 +62,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); return ( @@ -46,8 +52,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -52,8 +62,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -52,8 +62,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = - useSelect( ( select ) => { - return { - brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), - techSupportLink: - select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: - select( - nfdOnboardingStore - ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { + return { + brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), + techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( brandName, @@ -61,8 +62,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( - ( select ) => { + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { return { techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), @@ -43,10 +43,10 @@ const LearnMore = () => { select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; - } - ); + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -57,8 +57,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -51,8 +57,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); @@ -51,8 +57,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, expertsLink, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + expertsLink, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), expertsLink: select( nfdOnboardingStore ).getExpertsUrl(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, expertsLink, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + expertsLink, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -56,8 +68,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.experts.link, '_blank' ) ) + window.open( content.help.experts.link, '_blank' ) } /> - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -48,8 +58,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { - return { - techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), - brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), - }; - } ); + const { techSupportLink, fullServiceCreativeTeamLink, brandConfig } = + useSelect( ( select ) => { + return { + techSupportLink: + select( nfdOnboardingStore ).getTechSupportUrl(), + fullServiceCreativeTeamLink: + select( + nfdOnboardingStore + ).getfullServiceCreativeTeamUrl(), + brandConfig: + select( nfdOnboardingStore ).getNewfoldBrandConfig(), + }; + } ); const content = getContents( techSupportLink, fullServiceCreativeTeamLink ); return ( @@ -46,8 +52,9 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> ); const LearnMore = () => { - const { brandName, techSupportLink, fullServiceCreativeTeamLink, brandConfig } = useSelect( ( select ) => { + const { + brandName, + techSupportLink, + fullServiceCreativeTeamLink, + brandConfig, + } = useSelect( ( select ) => { return { brandName: select( nfdOnboardingStore ).getNewfoldBrandName(), techSupportLink: select( nfdOnboardingStore ).getTechSupportUrl(), - fullServiceCreativeTeamLink: select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), + fullServiceCreativeTeamLink: + select( nfdOnboardingStore ).getfullServiceCreativeTeamUrl(), brandConfig: select( nfdOnboardingStore ).getNewfoldBrandConfig(), }; } ); - const content = getContents( brandName, techSupportLink, fullServiceCreativeTeamLink ); + const content = getContents( + brandName, + techSupportLink, + fullServiceCreativeTeamLink + ); return (
@@ -48,12 +58,15 @@ const LearnMore = () => { subheading={ content.introduction.subheading } icon={ content.introduction.icon } /> - { brandConfig?.views?.sidebar?.illustration?.shown !== false && - } + { brandConfig?.views?.sidebar?.illustration?.shown !== false && ( + + ) } { - ( window.open( content.help.fullService.link, '_blank' ) ) + window.open( content.help.fullService.link, '_blank' ) } /> { return { - heading: __( 'Nice work: Your site is ready 🎉', 'wp-module-onboarding' ), - subheading: __( 'Move-in day begins! Let us know if you\'d like a hand.', 'wp-module-onboarding' ), + heading: __( + 'Nice work: Your site is ready 🎉', + 'wp-module-onboarding' + ), + subheading: __( + "Move-in day begins! Let us know if you'd like a hand.", + 'wp-module-onboarding' + ), buttonText: __( 'Complete Setup', 'wp-module-onboarding' ), tabs: [ { @@ -50,11 +56,10 @@ const getContents = ( brandName ) => { 'Make our great people your people.', 'wp-module-onboarding' ), - text: - __( - 'Looking for personalized WordPress assistance, or someone to take-over from here? Go beyond support with our professional services.', - 'wp-module-onboarding' - ), + text: __( + 'Looking for personalized WordPress assistance, or someone to take-over from here? Go beyond support with our professional services.', + 'wp-module-onboarding' + ), imgType: 'img-3', animationName: 'fade-in-left', }, diff --git a/src/OnboardingSPA/pages/Steps/WhatNext/index.js b/src/OnboardingSPA/pages/Steps/WhatNext/index.js index 0f6c53372..830907534 100644 --- a/src/OnboardingSPA/pages/Steps/WhatNext/index.js +++ b/src/OnboardingSPA/pages/Steps/WhatNext/index.js @@ -13,8 +13,11 @@ import { SIDEBAR_LEARN_MORE } from '../../../../constants'; import getContents from './contents'; const StepWhatNext = () => { - const { setIsDrawerOpened, setSidebarActiveView, setIsHeaderNavigationEnabled } = - useDispatch( nfdOnboardingStore ); + const { + setIsDrawerOpened, + setSidebarActiveView, + setIsHeaderNavigationEnabled, + } = useDispatch( nfdOnboardingStore ); useEffect( () => { setIsDrawerOpened( false ); @@ -36,30 +39,31 @@ const StepWhatNext = () => {
- + subHeading={ content.subheading } + > { return { name: tab.name, title: tab.title, - content: , + content: ( + + ), }; } ) } > { ( tab ) =>
{ tab.content }
} -
- +
- ); }; diff --git a/src/constants.js b/src/constants.js index f37ec96b2..75b5df22d 100644 --- a/src/constants.js +++ b/src/constants.js @@ -10,7 +10,9 @@ export const onboardingRestRoute = 'newfold-onboarding/v1'; export const wpRestBase = `${ wpRestURL }/${ wpRestRoute }`; export const onboardingRestBase = `${ wpRestURL }/${ onboardingRestRoute }`; export const wpAdminPage = `${ wpAdminUrl }index.php`; -export const pluginDashboardPage = `${ window.nfdOnboarding.currentBrand?.pluginDashboardPage ?? wpAdminPage }`; +export const pluginDashboardPage = `${ + window.nfdOnboarding.currentBrand?.pluginDashboardPage ?? wpAdminPage +}`; export const NFD_ONBOARDING_EVENT_PREFIX = 'nfd-module-onboarding-event'; export const VIEW_NAV_PRIMARY = 'nav-primary'; export const VIEW_NAV_DESIGN = 'nav-design';