diff --git a/package.json b/package.json index 9dc2ed3e3..537861161 100644 --- a/package.json +++ b/package.json @@ -65,4 +65,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/visual-editor/src/components/header/ExpandedHeader.test.tsx b/packages/visual-editor/src/components/header/ExpandedHeader.test.tsx index bc00aac05..a054d6d33 100644 --- a/packages/visual-editor/src/components/header/ExpandedHeader.test.tsx +++ b/packages/visual-editor/src/components/header/ExpandedHeader.test.tsx @@ -940,6 +940,152 @@ const tests: ComponentTest[] = [ }, version: 48, }, + { + name: "version 49 props - no logo", + document: {}, + props: { + styles: { + maxWidth: "theme", + headerPosition: "scrollsWithPage", + }, + slots: { + PrimaryHeaderSlot: [ + { + type: "PrimaryHeaderSlot", + props: { + styles: { + backgroundColor: backgroundColors.background6.value, + }, + slots: { + LogoSlot: [], + LinksSlot: [ + { + type: "HeaderLinks", + props: { + data: { + links: [ + { + linkType: "URL", + label: { + en: "Primary Header Link", + hasLocalizedValue: "true", + }, + link: "#", + }, + { + linkType: "URL", + label: { + en: "Primary Header Link", + hasLocalizedValue: "true", + }, + link: "#", + }, + ], + }, + parentData: { + type: "Primary", + }, + }, + }, + ], + PrimaryCTASlot: [ + { + type: "CTASlot", + props: { + data: { + show: true, + entityField: { + field: "", + constantValue: { + label: { en: "CTA", hasLocalizedValue: "true" }, + link: "#", + linkType: "URL", + }, + constantValueEnabled: true, + }, + }, + styles: { + displayType: "textAndLink", + variant: "primary", + }, + }, + }, + ], + SecondaryCTASlot: [ + { + type: "CTASlot", + props: { + data: { + show: true, + entityField: { + field: "", + constantValue: { + label: { + en: "Secondary CTA", + hasLocalizedValue: "true", + }, + link: "#", + linkType: "URL", + }, + constantValueEnabled: true, + }, + }, + styles: { + displayType: "textAndLink", + variant: "secondary", + }, + }, + }, + ], + }, + }, + }, + ], + SecondaryHeaderSlot: [ + { + type: "SecondaryHeaderSlot", + props: { + data: { + show: true, + showLanguageDropdown: false, + }, + styles: { + backgroundColor: backgroundColors.background4.value, + }, + slots: { + LinksSlot: [ + { + type: "HeaderLinks", + props: { + data: { + links: [ + { + linkType: "URL", + label: { + en: "Secondary Header Link", + hasLocalizedValue: "true", + }, + link: "#", + }, + ], + }, + parentData: { + type: "Secondary", + }, + }, + }, + ], + }, + }, + }, + ], + }, + analytics: { + scope: "expandedHeader", + }, + }, + version: 49, + }, ]; describe("ExpandedHeader", async () => { diff --git a/packages/visual-editor/src/components/header/PrimaryHeaderSlot.tsx b/packages/visual-editor/src/components/header/PrimaryHeaderSlot.tsx index 06147ecbb..d7ec7aadd 100644 --- a/packages/visual-editor/src/components/header/PrimaryHeaderSlot.tsx +++ b/packages/visual-editor/src/components/header/PrimaryHeaderSlot.tsx @@ -34,6 +34,7 @@ export interface PrimaryHeaderSlotProps { conditionalRender?: { navContent: boolean; CTAs: boolean; + hasLogoImage?: boolean; }; /** @internal */ @@ -88,15 +89,22 @@ const PrimaryHeaderSlotWrapper: PuckComponent = ({ const { t } = useTranslation(); const [isMobileMenuOpen, setMobileMenuOpen] = React.useState(false); - const containerRef = React.useRef(null); const contentRef = React.useRef(null); const showHamburger = useOverflow(containerRef, contentRef); - const showCTAs = puck.isEditing || conditionalRender?.CTAs; const showNavContent = puck.isEditing || conditionalRender?.navContent; - const LogoSlot = ; + const LogoSlot = ( +
+ +
+ ); const navContent = ( <> @@ -323,6 +331,15 @@ export const PrimaryHeaderSlot: ComponentConfig<{ return data; } + const logoSlotItem = data.props.slots.LogoSlot?.[0]; + + const hasLogoImage = + logoSlotItem?.type === "ImageSlot" && + !!( + logoSlotItem?.props?.data?.image?.constantValue || + logoSlotItem?.props?.data?.image?.field + ); + // Check if PrimaryCTA has data to display const primaryCTA = resolveComponentData( data.props.slots.PrimaryCTASlot[0]?.props.data @@ -366,6 +383,7 @@ export const PrimaryHeaderSlot: ComponentConfig<{ conditionalRender: { navContent: showNavContent, CTAs: showPrimaryCTA || showSecondaryCTA, + hasLogoImage, }, }, }; diff --git a/packages/visual-editor/src/components/testing/screenshots/EventSection/[tablet] default props with empty document.png b/packages/visual-editor/src/components/testing/screenshots/EventSection/[tablet] default props with empty document.png index 5dcbf4210..b1d4bd40c 100644 Binary files a/packages/visual-editor/src/components/testing/screenshots/EventSection/[tablet] default props with empty document.png and b/packages/visual-editor/src/components/testing/screenshots/EventSection/[tablet] default props with empty document.png differ diff --git a/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[desktop] version 49 props - no logo.png b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[desktop] version 49 props - no logo.png new file mode 100644 index 000000000..1a6ac0297 Binary files /dev/null and b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[desktop] version 49 props - no logo.png differ diff --git a/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[mobile] version 49 props - no logo.png b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[mobile] version 49 props - no logo.png new file mode 100644 index 000000000..0e16fe9cd Binary files /dev/null and b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[mobile] version 49 props - no logo.png differ diff --git a/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[tablet] version 49 props - no logo.png b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[tablet] version 49 props - no logo.png new file mode 100644 index 000000000..6da46d84a Binary files /dev/null and b/packages/visual-editor/src/components/testing/screenshots/ExpandedHeader/[tablet] version 49 props - no logo.png differ diff --git a/starter/package.json b/starter/package.json index 35eb96ab0..a4b018362 100644 --- a/starter/package.json +++ b/starter/package.json @@ -69,4 +69,4 @@ "rollup": "npm:@rollup/wasm-node" } } -} \ No newline at end of file +}