From cfe1af435c23f2a8971d2aaecba99e38876b7914 Mon Sep 17 00:00:00 2001 From: William Viana Date: Wed, 8 Apr 2026 12:44:26 +0200 Subject: [PATCH 1/2] Scan: add Jetpack footer to the WP.com page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wires the simplified `JetpackFooter` component (introduced in #109765) into the Scan page entry point, gated on the existing `isWpcom` variable so it only renders on the WP.com (Calypso) variant — Jetpack Cloud and A8C-for-Agencies have their own chrome and don't get a duplicate footer. Pattern matches Backup (#109886) and Podcasting from #109765: render `` after the ``/fragment branch but inside `
`, with the same `isWpcom` gate. Co-Authored-By: Claude Opus 4.6 (1M context) --- client/my-sites/scan/main.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/my-sites/scan/main.tsx b/client/my-sites/scan/main.tsx index c2694573c984..74af034ccff8 100644 --- a/client/my-sites/scan/main.tsx +++ b/client/my-sites/scan/main.tsx @@ -9,6 +9,7 @@ import JetpackReviewPrompt from 'calypso/blocks/jetpack-review-prompt'; import TimeMismatchWarning from 'calypso/blocks/time-mismatch-warning'; import DocumentHead from 'calypso/components/data/document-head'; import QueryJetpackScan from 'calypso/components/data/query-jetpack-scan'; +import JetpackFooter from 'calypso/components/jetpack/jetpack-footer'; import ScanPlaceholder from 'calypso/components/jetpack/scan-placeholder'; import ScanThreats from 'calypso/components/jetpack/scan-threats'; import SecurityIcon from 'calypso/components/jetpack/security-icon'; @@ -386,6 +387,7 @@ class ScanPage extends Component< Props > { ) : ( content ) } + { isWpcom && }
); } From 88abb090d788fc5a73ade293022c6529b802d44e Mon Sep 17 00:00:00 2001 From: William Viana Date: Wed, 8 Apr 2026 22:50:13 +0200 Subject: [PATCH 2/2] Scan: extend Jetpack footer to all WP.com upsell render paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The original commit only covered the happy-path ScanPage from main.tsx. Investigation against /scan/ revealed three additional WP.com render paths reachable through the Scan controller middleware chain (client/my-sites/scan/index.js) that were missing a footer: 1. wpcom-scan-upsell.tsx (WPCOMScanUpsellPage) — reached via the showUpsellIfNoScan / showUpsellIfNoScanSelfServeFeature middlewares (and also for the no_connected_jetpack / vp_active / multisite reasons). Renders one of several PromoCard variants based on the reason prop. File is wpcom-only by construction — the scan controller gates between this and ScanUpsellPage (the Jetpack Cloud variant) at isJetpackCloud() || isA8CForAgencies(), so no gate is needed inside the file itself. 2. wpcom-upsell.tsx (WPCOMScanUpsellPage — same export name, simpler component) — reached via ScanAtomicTransferWrapper in wpcom-atomic-transfer.tsx when ! hasScanFeature. Same wpcom-only construction. 3. wpcom-atomic-transfer.tsx (ScanLoadingPlaceholder) — the loading state rendered by ScanAtomicTransferWrapper while site features or scan data are still loading. Scan-specific local component (not shared infrastructure), reachable only for non-Jetpack-Cloud sites (wpcomJetpackScanAtomicTransfer short-circuits on isJetpackCloud() || isA8CForAgencies() at the middleware level). The inner atomic-transfer CTA path routes through the shared component from client/components/jetpack/wpcom-business-at/index.tsx. That component was footered separately in HEADER-008's sibling PR #109886 and will reach this branch via trunk once that PR merges. Verified on willstestdotblog.wordpress.com (Simple, no scan feature → upsell render path via wpcom-atomic-transfer.tsx → wpcom-upsell.tsx) at mobile viewport (390×844): footer present, single instance, no layout issues. Verified the main.tsx happy path still works on curlingforbeginners9.wpcomstaging.com with footerCount === 1 (no duplication from the new additions). Co-Authored-By: Claude Opus 4.6 (1M context) --- client/my-sites/scan/wpcom-atomic-transfer.tsx | 2 ++ client/my-sites/scan/wpcom-scan-upsell.tsx | 2 ++ client/my-sites/scan/wpcom-upsell.tsx | 2 ++ 3 files changed, 6 insertions(+) diff --git a/client/my-sites/scan/wpcom-atomic-transfer.tsx b/client/my-sites/scan/wpcom-atomic-transfer.tsx index ba72f09bbded..3e463e8b7e7c 100644 --- a/client/my-sites/scan/wpcom-atomic-transfer.tsx +++ b/client/my-sites/scan/wpcom-atomic-transfer.tsx @@ -6,6 +6,7 @@ import { useSelector } from 'react-redux'; import JetpackScanSVG from 'calypso/assets/images/illustrations/jetpack-scan.svg'; import QueryJetpackScan from 'calypso/components/data/query-jetpack-scan'; import QuerySiteFeatures from 'calypso/components/data/query-site-features'; +import JetpackFooter from 'calypso/components/jetpack/jetpack-footer'; import WPCOMBusinessAT from 'calypso/components/jetpack/wpcom-business-at'; import JetpackTitle from 'calypso/components/jetpack-title'; import Main from 'calypso/components/main'; @@ -38,6 +39,7 @@ const ScanLoadingPlaceholder = () => { >
+ ); }; diff --git a/client/my-sites/scan/wpcom-scan-upsell.tsx b/client/my-sites/scan/wpcom-scan-upsell.tsx index e2b2409f9155..0b9bbad4b788 100644 --- a/client/my-sites/scan/wpcom-scan-upsell.tsx +++ b/client/my-sites/scan/wpcom-scan-upsell.tsx @@ -11,6 +11,7 @@ import JetpackScanSVG from 'calypso/assets/images/illustrations/jetpack-scan.svg import VaultPressLogo from 'calypso/assets/images/jetpack/vaultpress-logo.svg'; import DocumentHead from 'calypso/components/data/document-head'; import JetpackDisconnectedWPCOM from 'calypso/components/jetpack/jetpack-disconnected-wpcom'; +import JetpackFooter from 'calypso/components/jetpack/jetpack-footer'; import SecurityIcon from 'calypso/components/jetpack/security-icon'; import JetpackTitle from 'calypso/components/jetpack-title'; import Main from 'calypso/components/main'; @@ -205,6 +206,7 @@ export default function WPCOMScanUpsellPage( { reason }: { reason?: string } ) { > { body } + ); } diff --git a/client/my-sites/scan/wpcom-upsell.tsx b/client/my-sites/scan/wpcom-upsell.tsx index 55ca0d6e3d49..9ca9100c2543 100644 --- a/client/my-sites/scan/wpcom-upsell.tsx +++ b/client/my-sites/scan/wpcom-upsell.tsx @@ -3,6 +3,7 @@ import { Page } from '@wordpress/admin-ui'; import { useTranslate } from 'i18n-calypso'; import JetpackScanSVG from 'calypso/assets/images/illustrations/jetpack-scan.svg'; import DocumentHead from 'calypso/components/data/document-head'; +import JetpackFooter from 'calypso/components/jetpack/jetpack-footer'; import WhatIsJetpack from 'calypso/components/jetpack/what-is-jetpack'; import JetpackTitle from 'calypso/components/jetpack-title'; import Main from 'calypso/components/main'; @@ -62,6 +63,7 @@ export default function WPCOMScanUpsellPage() { + ); }