diff --git a/src/app/components/CollapsibleNavigation/index.styles.ts b/src/app/components/CollapsibleNavigation/index.styles.ts index dd0e6f40ce1..f68b860d84f 100644 --- a/src/app/components/CollapsibleNavigation/index.styles.ts +++ b/src/app/components/CollapsibleNavigation/index.styles.ts @@ -45,7 +45,7 @@ const styles = { transform: 'translateY(-50%)', width: `${pixelsToRem(1)}rem`, height: `${pixelsToRem(20)}rem`, - backgroundColor: palette.GREY_10, + backgroundColor: palette.GREY_5, }, '&:nth-last-child(2)::after': { background: 'none', diff --git a/src/app/components/ThemeProvider/chameleonLogos/ws.tsx b/src/app/components/ThemeProvider/chameleonLogos/ws.tsx index 566a2e4eb18..5874c5e0d7f 100644 --- a/src/app/components/ThemeProvider/chameleonLogos/ws.tsx +++ b/src/app/components/ThemeProvider/chameleonLogos/ws.tsx @@ -1,12 +1,11 @@ import build from '.'; export default build({ - width: 2220, - height: 425, group: ( <> - - + + ), + viewbox: { minY: 0, minX: 0, width: 290, height: 24 }, }); diff --git a/src/app/legacy/containers/Brand/index.jsx b/src/app/legacy/containers/Brand/index.jsx index d85529a3e3b..8b172ff0013 100644 --- a/src/app/legacy/containers/Brand/index.jsx +++ b/src/app/legacy/containers/Brand/index.jsx @@ -5,6 +5,7 @@ import { useTheme } from '@emotion/react'; import { servicesWithVariants } from '#lib/utilities/variantHandler'; import { ServiceContext } from '../../../contexts/ServiceContext'; import { RequestContext } from '../../../contexts/RequestContext'; +import { isGlobalLanguageHomepage } from '../Header/NewLogoBanner'; const StyledBrand = styled(Brand)` position: relative; @@ -43,6 +44,8 @@ const BrandContainer = ({ const maxWidth = svgRatio * svgMaxHeight; const brandPath = getBrandPath(service, variant); + const { pathname } = use(RequestContext); + const isLanguagesPage = isGlobalLanguageHomepage(pathname); return ( {children} diff --git a/src/app/legacy/containers/Header/NewLogoBanner.tsx b/src/app/legacy/containers/Header/NewLogoBanner.tsx index b1a7e7a319d..c98421a5d3a 100644 --- a/src/app/legacy/containers/Header/NewLogoBanner.tsx +++ b/src/app/legacy/containers/Header/NewLogoBanner.tsx @@ -2,9 +2,9 @@ import { use } from 'react'; import { RequestContext } from '#contexts/RequestContext'; import styles from './index.styles'; -const GLOBAL_LANGUAGES_PATH = '/ws/languages'; +export const GLOBAL_LANGUAGES_PATH = '/ws/languages'; -const isGlobalLanguageHomepage = (inputPathname?: string) => { +export const isGlobalLanguageHomepage = (inputPathname?: string) => { if (!inputPathname) return false; const pathname = inputPathname?.split(/[?#]/)?.[0]?.replace(/\/$/, ''); diff --git a/src/app/legacy/containers/Header/index.jsx b/src/app/legacy/containers/Header/index.jsx index d108f6b5806..7945faaa0fd 100644 --- a/src/app/legacy/containers/Header/index.jsx +++ b/src/app/legacy/containers/Header/index.jsx @@ -18,7 +18,7 @@ import SERVICES_WITH_NEW_NAV from '#app/components/Navigation/config'; import { ServiceContext } from '../../../contexts/ServiceContext'; import ConsentBanner from '../ConsentBanner'; import BrandContainer from '../Brand'; -import NewLogoBanner from './NewLogoBanner'; +import NewLogoBanner, { isGlobalLanguageHomepage } from './NewLogoBanner'; import styles from './index.styles'; const Header = ({ @@ -88,6 +88,12 @@ const HeaderContainer = ({ navItems, propsForTopBarOJComponent }) => { const shouldUseNewNav = SERVICES_WITH_NEW_NAV.includes(service); + const { pathname } = use(RequestContext); + + const isLanguagesPage = isGlobalLanguageHomepage(pathname); + + const shouldShowNewLogoBanner = shouldUseNewNav || isLanguagesPage; + let shouldRenderScriptSwitch = false; if (scriptLink) { @@ -112,7 +118,7 @@ const HeaderContainer = ({ navItems, propsForTopBarOJComponent }) => { return (
- {shouldUseNewNav && } + {shouldShowNewLogoBanner && } {isAmp ? (
( ); +export const GlobalLanguages = () => ( + + + +); + export default { title: 'Containers/Header', Component, diff --git a/src/app/legacy/containers/Header/index.test.jsx b/src/app/legacy/containers/Header/index.test.jsx index b49f0f391fb..347f234a099 100644 --- a/src/app/legacy/containers/Header/index.test.jsx +++ b/src/app/legacy/containers/Header/index.test.jsx @@ -320,4 +320,29 @@ describe(`Header`, () => { expect(container).not.toContainElement(cookieBanner); }); }); + + describe('WSLanguagesHeader', () => { + it('should render the logo banner on the WS Languages Homepage', async () => { + HeaderContainerWithContext({ + renderOptions: { + pageType: HOME_PAGE, + service: 'ws', + pathname: '/ws/languages', + }, + }); + expect(await screen.findByTestId('logo-banner')).toBeInTheDocument(); + }); + + it('should not render the logo banner for ws service on a non-languages page', () => { + HeaderContainerWithContext({ + renderOptions: { + pageType: HOME_PAGE, + service: 'ws', + pathname: '/ws', + }, + }); + + expect(screen.queryByTestId('logo-banner')).toBeNull(); + }); + }); }); diff --git a/src/app/legacy/psammead/psammead-brand/src/index.jsx b/src/app/legacy/psammead/psammead-brand/src/index.jsx index 360fb7529e8..18223b2513f 100644 --- a/src/app/legacy/psammead/psammead-brand/src/index.jsx +++ b/src/app/legacy/psammead/psammead-brand/src/index.jsx @@ -36,17 +36,20 @@ const Banner = styled.div` align-items: stretch; @media (min-width: ${GEL_GROUP_1_SCREEN_WIDTH_MIN}) { - min-height: ${60 / 16}rem; + min-height: ${props => + props.isLanguagesPage ? `${44 / 16}rem` : `${60 / 16}rem`}; padding: 0 ${GEL_SPACING}; } @media (min-width: ${GEL_GROUP_2_SCREEN_WIDTH_MIN}) { - min-height: ${60 / 16}rem; + min-height: ${props => + props.isLanguagesPage ? `${44 / 16}rem` : `${60 / 16}rem`}; padding: 0 ${GEL_SPACING_DBL}; } @media (min-width: ${GEL_GROUP_3_SCREEN_WIDTH_MIN}) { - min-height: ${64 / 16}rem; + min-height: ${props => + props.isLanguagesPage ? `${44 / 16}rem` : `${64 / 16}rem`}; } `; @@ -89,7 +92,8 @@ const BrandSvg = styled.svg` } @media (min-width: ${GEL_GROUP_3_SCREEN_WIDTH_MIN}) { - height: ${30 / 16}rem; + height: ${props => + props.isLanguagesPage ? `${24 / 16}rem` : `${30 / 16}rem`}; } @media screen and (-ms-high-contrast: active), print { @@ -115,7 +119,13 @@ const LocalisedBrandName = ({ ); }; -const StyledBrand = ({ linkId, product, serviceLocalisedName = null, svg }) => { +const StyledBrand = ({ + linkId, + product, + serviceLocalisedName = null, + svg, + isLanguagesPage = false, +}) => { return svg ? ( <> { focusable="false" aria-hidden="true" height="32" + isLanguagesPage={isLanguagesPage && linkId !== 'footer'} > {svg.group} @@ -152,11 +163,18 @@ const Brand = forwardRef((props, ref) => { skipLink = null, linkId = null, children, + serviceLocalisedName, + isLanguagesPage, ...rest } = props; return ( - + {url ? (