diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 5e84015f56b..af4fe1f69d9 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -43,7 +43,7 @@ "@guardian/shimport": "1.0.2", "@guardian/source": "11.3.0", "@guardian/source-development-kitchen": "18.1.1", - "@guardian/support-dotcom-components": "8.4.2", + "@guardian/support-dotcom-components": "8.5.0", "@guardian/tsconfig": "0.2.0", "@playwright/test": "1.58.0", "@sentry/browser": "10.39.0", diff --git a/dotcom-rendering/src/components/Island.test.tsx b/dotcom-rendering/src/components/Island.test.tsx index addd23d0a65..287da03eeb2 100644 --- a/dotcom-rendering/src/components/Island.test.tsx +++ b/dotcom-rendering/src/components/Island.test.tsx @@ -287,6 +287,7 @@ describe('Island: server-side rendering', () => { pageId={''} keywordIds={''} renderingTarget={'Web'} + isSensitive={false} />, ), ).not.toThrow(); @@ -430,6 +431,7 @@ describe('Island: server-side rendering', () => { renderAds={true} isLabs={false} articleEndSlot={true} + isSensitive={false} /> , ), diff --git a/dotcom-rendering/src/components/LiveBlogEpic.island.tsx b/dotcom-rendering/src/components/LiveBlogEpic.island.tsx index 62106de0d72..252a06cee30 100644 --- a/dotcom-rendering/src/components/LiveBlogEpic.island.tsx +++ b/dotcom-rendering/src/components/LiveBlogEpic.island.tsx @@ -33,6 +33,7 @@ type Props = { pageId: string; keywordIds: string; renderingTarget: RenderingTarget; + isSensitive: boolean; }; const useEpic = ({ name }: { name: string }) => { @@ -90,6 +91,7 @@ const usePayload = ({ isPaidContent, tags, pageId, + isSensitive, }: { shouldHideReaderRevenue: boolean; sectionId: string; @@ -97,6 +99,7 @@ const usePayload = ({ tags: TagType[]; pageId: string; keywordIds: string; + isSensitive: boolean; }): EpicPayload | undefined => { const articleCounts = useArticleCounts(pageId, tags, 'LiveBlog'); const hasOptedOutOfArticleCount = useHasOptedOutOfArticleCount(); @@ -134,6 +137,7 @@ const usePayload = ({ isSignedIn, pageId, inHoldbackGroup, + isSensitive, }, }; }; @@ -243,6 +247,7 @@ export const LiveBlogEpic = ({ pageId, keywordIds, renderingTarget, + isSensitive, }: Props) => { log('dotcom', 'LiveBlogEpic started'); @@ -262,6 +267,7 @@ export const LiveBlogEpic = ({ tags, pageId, keywordIds, + isSensitive, }); if (!ophanPageViewId || !payload || !pageUrl) return null; diff --git a/dotcom-rendering/src/components/LiveBlogRenderer.tsx b/dotcom-rendering/src/components/LiveBlogRenderer.tsx index 000b8d10a61..ce0075abfeb 100644 --- a/dotcom-rendering/src/components/LiveBlogRenderer.tsx +++ b/dotcom-rendering/src/components/LiveBlogRenderer.tsx @@ -159,6 +159,7 @@ export const LiveBlogRenderer = ({ pageId={pageId} keywordIds={keywordIds} renderingTarget={renderingTarget} + isSensitive={isSensitive} /> )} diff --git a/dotcom-rendering/src/components/SlotBodyEnd.island.tsx b/dotcom-rendering/src/components/SlotBodyEnd.island.tsx index 27ac5323ce4..8c24089adf9 100644 --- a/dotcom-rendering/src/components/SlotBodyEnd.island.tsx +++ b/dotcom-rendering/src/components/SlotBodyEnd.island.tsx @@ -52,6 +52,7 @@ type Props = { renderAds: boolean; isLabs: boolean; articleEndSlot: boolean; + isSensitive: boolean; }; const slotStyles = css` @@ -118,6 +119,7 @@ export const SlotBodyEnd = ({ renderAds, isLabs, articleEndSlot, + isSensitive, }: Props) => { const { renderingTarget } = useConfig(); const { brazeMessages, braze } = useBraze(idApiUrl, renderingTarget); @@ -175,6 +177,7 @@ export const SlotBodyEnd = ({ 'growth-holdback-group', 'control', ) ?? false, + isSensitive, }); const brazeArticleContext: BrazeArticleContext = { section: sectionId, @@ -230,6 +233,7 @@ export const SlotBodyEnd = ({ pageId, braze, abTests, + isSensitive, ]); useEffect(() => { diff --git a/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx b/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx index 5c8bc8bb027..6003ea6a54d 100644 --- a/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx +++ b/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx @@ -53,6 +53,7 @@ export type CanShowData = { ophanPageViewId: string; pageId?: string; inHoldbackGroup?: boolean; + isSensitive: boolean; }; const buildPayload = async ( @@ -75,6 +76,7 @@ const buildPayload = async ( isSignedIn: data.isSignedIn, pageId: data.pageId, inHoldbackGroup: data.inHoldbackGroup, + isSensitive: data.isSensitive, }, }); diff --git a/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx b/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx index 15a83bd012b..297911ca457 100644 --- a/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx +++ b/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx @@ -131,6 +131,7 @@ const buildPayload = async ({ pageId, inHoldbackGroup, inAuxiaVariant, + isSensitive, }: BuildPayloadProps): Promise => { const getBrowserId = (): string | undefined => { if (!inAuxiaVariant) return undefined; @@ -170,6 +171,7 @@ const buildPayload = async ({ pageId, inHoldbackGroup, browserId: getBrowserId(), + isSensitive, }, }; }; diff --git a/dotcom-rendering/src/layouts/AudioLayout.tsx b/dotcom-rendering/src/layouts/AudioLayout.tsx index e02a355a4ec..a223446379a 100644 --- a/dotcom-rendering/src/layouts/AudioLayout.tsx +++ b/dotcom-rendering/src/layouts/AudioLayout.tsx @@ -377,6 +377,9 @@ export const AudioLayout = (props: WebProps) => { !!article.config.switches .articleEndSlot } + isSensitive={ + article.config.isSensitive + } /> )} diff --git a/dotcom-rendering/src/layouts/CommentLayout.tsx b/dotcom-rendering/src/layouts/CommentLayout.tsx index ed4a3046f52..4d6e4c5304a 100644 --- a/dotcom-rendering/src/layouts/CommentLayout.tsx +++ b/dotcom-rendering/src/layouts/CommentLayout.tsx @@ -629,6 +629,9 @@ export const CommentLayout = (props: WebProps | AppsProps) => { !!article.config.switches .articleEndSlot } + isSensitive={ + article.config.isSensitive + } /> )} diff --git a/dotcom-rendering/src/layouts/ImmersiveLayout.tsx b/dotcom-rendering/src/layouts/ImmersiveLayout.tsx index 179431e0506..505c519f909 100644 --- a/dotcom-rendering/src/layouts/ImmersiveLayout.tsx +++ b/dotcom-rendering/src/layouts/ImmersiveLayout.tsx @@ -719,6 +719,9 @@ export const ImmersiveLayout = (props: WebProps | AppProps) => { !!article.config.switches .articleEndSlot } + isSensitive={ + article.config.isSensitive + } /> )} diff --git a/dotcom-rendering/src/layouts/InteractiveLayout.tsx b/dotcom-rendering/src/layouts/InteractiveLayout.tsx index b0125812910..e5ac1de3910 100644 --- a/dotcom-rendering/src/layouts/InteractiveLayout.tsx +++ b/dotcom-rendering/src/layouts/InteractiveLayout.tsx @@ -565,6 +565,7 @@ export const InteractiveLayout = (props: WebProps | AppsProps) => { articleEndSlot={ !!article.config.switches.articleEndSlot } + isSensitive={article.config.isSensitive} /> diff --git a/dotcom-rendering/src/layouts/ShowcaseLayout.tsx b/dotcom-rendering/src/layouts/ShowcaseLayout.tsx index f6a58773472..39b5b894d10 100644 --- a/dotcom-rendering/src/layouts/ShowcaseLayout.tsx +++ b/dotcom-rendering/src/layouts/ShowcaseLayout.tsx @@ -604,6 +604,9 @@ export const ShowcaseLayout = (props: WebProps | AppsProps) => { !!article.config.switches .articleEndSlot } + isSensitive={ + article.config.isSensitive + } /> )} diff --git a/dotcom-rendering/src/layouts/StandardLayout.tsx b/dotcom-rendering/src/layouts/StandardLayout.tsx index ecf32d736cb..56f9497383f 100644 --- a/dotcom-rendering/src/layouts/StandardLayout.tsx +++ b/dotcom-rendering/src/layouts/StandardLayout.tsx @@ -742,6 +742,9 @@ export const StandardLayout = (props: WebProps | AppProps) => { !!article.config.switches .articleEndSlot } + isSensitive={ + article.config.isSensitive + } /> )} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4727523104..11c9cd12b2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -336,8 +336,8 @@ importers: specifier: 18.1.1 version: 18.1.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@30.1.1(@guardian/ophan-tracker-js@2.8.0)(tslib@2.6.2)(typescript@5.5.3))(@guardian/source@11.3.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.5.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.5.3) '@guardian/support-dotcom-components': - specifier: 8.4.2 - version: 8.4.2(@guardian/libs@30.1.1(@guardian/ophan-tracker-js@2.8.0)(tslib@2.6.2)(typescript@5.5.3))(@guardian/ophan-tracker-js@2.8.0)(zod@4.1.12) + specifier: 8.5.0 + version: 8.5.0(@guardian/libs@30.1.1(@guardian/ophan-tracker-js@2.8.0)(tslib@2.6.2)(typescript@5.5.3))(@guardian/ophan-tracker-js@2.8.0)(zod@4.1.12) '@guardian/tsconfig': specifier: 0.2.0 version: 0.2.0 @@ -2556,8 +2556,8 @@ packages: typescript: optional: true - '@guardian/support-dotcom-components@8.4.2': - resolution: {integrity: sha512-vaVnksG7epJK2TO1KvbFm4nE94iHg74qtSYS5hdFVLkk0B0ar5mvfvB9hk5jJaZ5utzNPG1KP3tEqH2SlL9LMA==} + '@guardian/support-dotcom-components@8.5.0': + resolution: {integrity: sha512-T2uo7LlQXBaveHzitz0Tcibc5K7JYKSLv04BrYFtxsEpi5rTOQol+/ACpDISBe/RANp5x2rsNmlCnL0jgo6zig==} peerDependencies: '@guardian/libs': ^22.0.0 '@guardian/ophan-tracker-js': 2.8.0 @@ -7001,6 +7001,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -11741,7 +11745,7 @@ snapshots: react: 18.3.1 typescript: 5.5.3 - '@guardian/support-dotcom-components@8.4.2(@guardian/libs@30.1.1(@guardian/ophan-tracker-js@2.8.0)(tslib@2.6.2)(typescript@5.5.3))(@guardian/ophan-tracker-js@2.8.0)(zod@4.1.12)': + '@guardian/support-dotcom-components@8.5.0(@guardian/libs@30.1.1(@guardian/ophan-tracker-js@2.8.0)(tslib@2.6.2)(typescript@5.5.3))(@guardian/ophan-tracker-js@2.8.0)(zod@4.1.12)': dependencies: '@aws-sdk/client-cloudwatch': 3.995.0 '@aws-sdk/client-dynamodb': 3.996.0 @@ -11760,6 +11764,7 @@ snapshots: lodash.debounce: 4.0.8 lodash.throttle: 4.1.1 log4js: 6.9.1 + lru-cache: 11.2.7 seedrandom: 3.0.5 zod: 4.1.12 transitivePeerDependencies: @@ -17446,6 +17451,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.7: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1