diff --git a/dotcom-rendering/fixtures/manual/frontCollections.ts b/dotcom-rendering/fixtures/manual/frontCollections.ts index 43c2e4d5b5b..3a3dabb0078 100644 --- a/dotcom-rendering/fixtures/manual/frontCollections.ts +++ b/dotcom-rendering/fixtures/manual/frontCollections.ts @@ -9,7 +9,7 @@ const defaultGrouped = { const defaultValues = { backfill: [], - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', config: { showDateHeader: false, }, @@ -35,13 +35,13 @@ export const testCollectionsUk = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'LongRunningAltPalette', displayName: 'Ukraine invasion', }, { ...defaultValues, - collectionType: 'fixed/small/slow-V-mpu', + collectionType: 'static/medium/4', displayName: 'News extra', }, { @@ -71,12 +71,12 @@ export const testCollectionsUk = [ }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Lifestyle', }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VII', + collectionType: 'flexible/general', displayName: 'Culture', }, { @@ -91,7 +91,7 @@ export const testCollectionsUk = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', displayName: 'The rural network', }, { @@ -111,23 +111,23 @@ export const testCollectionsUk = [ }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Multimedia', }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'Branded', displayName: 'Guardian Labs', }, { ...defaultValues, - collectionType: 'fixed/medium/slow-XII-mpu', + collectionType: 'flexible/general', displayName: 'Explore', }, { ...defaultValues, - collectionType: 'fixed/small/slow-I', + collectionType: 'flexible/general', displayName: 'The big picture', }, { @@ -162,7 +162,7 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', displayName: 'In depth', }, { @@ -172,13 +172,13 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'LongRunningAltPalette', displayName: 'Ukraine invasion', }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Opinion', }, { @@ -193,7 +193,7 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', displayName: 'Climate crisis', }, { @@ -218,7 +218,7 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VII', + collectionType: 'flexible/general', displayName: 'Podcasts', }, { @@ -228,28 +228,28 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Culture', }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'Branded', displayName: 'Business briefs', }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Lifestyle', }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', displayName: 'Take part', }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'Explore', }, { @@ -259,7 +259,7 @@ export const testCollectionsUs = [ }, { ...defaultValues, - collectionType: 'fixed/medium/slow-VI', + collectionType: 'flexible/general', displayName: 'In pictures', }, { @@ -282,7 +282,7 @@ export const brandedTestCollections = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'Branded', displayName: 'Guardian Labs', }, @@ -293,7 +293,7 @@ export const brandedTestCollections = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'Branded', displayName: 'Guardian Labs', }, @@ -304,7 +304,7 @@ export const brandedTestCollections = [ }, { ...defaultValues, - collectionType: 'fixed/small/slow-IV', + collectionType: 'static/medium/4', containerPalette: 'Branded', displayName: 'Guardian Labs', }, diff --git a/dotcom-rendering/src/components/DecideContainer.tsx b/dotcom-rendering/src/components/DecideContainer.tsx index fc514f1c2d3..98395248bf5 100644 --- a/dotcom-rendering/src/components/DecideContainer.tsx +++ b/dotcom-rendering/src/components/DecideContainer.tsx @@ -7,19 +7,6 @@ import type { DCRFrontCard, DCRGroupedTrails, } from '../types/front'; -import { FixedLargeSlowXIV } from './FixedLargeSlowXIV'; -import { FixedMediumFastXI } from './FixedMediumFastXI'; -import { FixedMediumFastXII } from './FixedMediumFastXII'; -import { FixedMediumSlowVI } from './FixedMediumSlowVI'; -import { FixedMediumSlowVII } from './FixedMediumSlowVII'; -import { FixedMediumSlowXIIMPU } from './FixedMediumSlowXIIMPU'; -import { FixedSmallFastVIII } from './FixedSmallFastVIII'; -import { FixedSmallSlowI } from './FixedSmallSlowI'; -import { FixedSmallSlowIII } from './FixedSmallSlowIII'; -import { FixedSmallSlowIV } from './FixedSmallSlowIV'; -import { FixedSmallSlowVHalf } from './FixedSmallSlowVHalf'; -import { FixedSmallSlowVMPU } from './FixedSmallSlowVMPU'; -import { FixedSmallSlowVThird } from './FixedSmallSlowVThird'; import { FlexibleGeneral } from './FlexibleGeneral'; import { FlexibleSpecial } from './FlexibleSpecial'; import { Island } from './Island'; @@ -61,136 +48,6 @@ export const DecideContainer = ({ containerLevel, }: Props) => { switch (containerType) { - case 'fixed/large/slow-XIV': - return ( - - ); - case 'fixed/small/slow-IV': - return ( - - ); - case 'fixed/small/slow-V-mpu': - return ( - - ); - case 'fixed/small/slow-III': - return ( - - ); - case 'fixed/small/slow-I': - return ( - - ); - case 'fixed/small/slow-V-third': - return ( - - ); - case 'fixed/small/slow-V-half': - return ( - - ); - case 'fixed/medium/slow-VI': - return ( - - ); - case 'fixed/medium/slow-VII': - return ( - - ); - case 'fixed/medium/slow-XII-mpu': - return ( - - ); - case 'fixed/medium/fast-XII': - return ( - - ); - case 'fixed/medium/fast-XI': - return ( - - ); - case 'fixed/small/fast-VIII': - return ( - - ); case 'nav/list': return ; case 'nav/media-list': diff --git a/dotcom-rendering/src/components/FixedLargeSlowXIV.stories.tsx b/dotcom-rendering/src/components/FixedLargeSlowXIV.stories.tsx deleted file mode 100644 index 58220573981..00000000000 --- a/dotcom-rendering/src/components/FixedLargeSlowXIV.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedLargeSlowXIV } from './FixedLargeSlowXIV'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedLargeSlowXIV, - title: 'Front Containers/Deprecated Containers/FixedLargeSlowXIV', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedLargeSlowXIV'; diff --git a/dotcom-rendering/src/components/FixedLargeSlowXIV.tsx b/dotcom-rendering/src/components/FixedLargeSlowXIV.tsx deleted file mode 100644 index 4c5a87245a0..00000000000 --- a/dotcom-rendering/src/components/FixedLargeSlowXIV.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { - Card25Media25, - Card25Media25SmallHeadline, - Card75Media50Right, - CardDefault, -} from '../lib/cardWrappers'; -import { shouldPadWrappableRows } from '../lib/dynamicSlices'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedLargeSlowXIV = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice75 = trails.slice(0, 1); - const firstSlice25 = trails.slice(1, 2); - const secondSlice25 = trails.slice(2, 6); - const thirdSlice25 = trails.slice(6, 14); - - return ( - <> -
    - {firstSlice75.map((card) => { - return ( -
  • - -
  • - ); - })} - {firstSlice25.map((card) => { - return ( -
  • - -
  • - ); - })} -
-
    - {secondSlice25.map((card, cardIndex) => { - return ( -
  • 0} - key={card.url} - > - -
  • - ); - })} -
-
    - {thirdSlice25.map((card, cardIndex, { length }) => { - const columns = 4; - return ( -
  • - -
  • - ); - })} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedMediumFastXI.stories.tsx b/dotcom-rendering/src/components/FixedMediumFastXI.stories.tsx deleted file mode 100644 index 348f25b4782..00000000000 --- a/dotcom-rendering/src/components/FixedMediumFastXI.stories.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedMediumFastXI } from './FixedMediumFastXI'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedMediumFastXI, - title: 'Front Containers/Deprecated Containers/FixedMediumFastXI', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const OneTrail = () => ( - - - -); -OneTrail.storyName = 'with one trail'; - -export const TwoTrails = () => ( - - - -); -TwoTrails.storyName = 'with two trails'; - -export const ThreeTrails = () => ( - - - -); -ThreeTrails.storyName = 'with three trails'; - -export const FourTrails = () => ( - - - -); -FourTrails.storyName = 'with four trails'; - -export const FiveTrails = () => ( - - - -); -FiveTrails.storyName = 'with five trails'; - -export const SixTrails = () => ( - - - -); -SixTrails.storyName = 'with six trails'; - -export const SevenTrails = () => ( - - - -); -SevenTrails.storyName = 'with seven trails'; - -export const EightTrails = () => ( - - - -); -EightTrails.storyName = 'with eight trails'; - -export const NineTrails = () => ( - - - -); -NineTrails.storyName = 'with nine trails'; - -export const TenTrails = () => ( - - - -); -TenTrails.storyName = 'with ten trails'; - -export const ElevenTrails = () => ( - - - -); -ElevenTrails.storyName = 'with eleven trails'; diff --git a/dotcom-rendering/src/components/FixedMediumFastXI.tsx b/dotcom-rendering/src/components/FixedMediumFastXI.tsx deleted file mode 100644 index 70a75ac4ec9..00000000000 --- a/dotcom-rendering/src/components/FixedMediumFastXI.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { CardDefault } from '../lib/cardWrappers'; -import { Card50_Card25_Card25 } from '../lib/dynamicSlices'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -const decideOffset = ({ - length, - position, -}: { - length: number; - position: number; -}): boolean => { - if (length <= 5) return false; - switch (length) { - case 6: { - switch (position) { - case 2: - return true; - default: - return false; - } - } - case 7: - return false; - case 8: { - if (position <= 4) return true; - else return false; - } - } - return false; -}; - -export const FixedMediumFastXI = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice = trails.slice(0, 3); - const remaining = trails.slice(3, 11); - return ( - <> - - {/* - * This pattern of using wrapCards on the UL + percentage=25 and stretch=true - * on the LI creates a dynanic list of cards over two rows where the second row - * only appears when there are more than 4 cards - * - * E.g: - * ._____._____._____._____. - * |_____|_____|_____|_____| - * |___________|___________| - */} -
    - {remaining.map((trail, trailIndex) => ( -
  • - -
  • - ))} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedMediumFastXII.stories.tsx b/dotcom-rendering/src/components/FixedMediumFastXII.stories.tsx deleted file mode 100644 index edffdc1fffd..00000000000 --- a/dotcom-rendering/src/components/FixedMediumFastXII.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedMediumFastXII } from './FixedMediumFastXII'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedMediumFastXII, - title: 'Front Containers/Deprecated Containers/FixedMediumFastXII', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedMediumFastXII'; diff --git a/dotcom-rendering/src/components/FixedMediumFastXII.tsx b/dotcom-rendering/src/components/FixedMediumFastXII.tsx deleted file mode 100644 index f5f06ec66f7..00000000000 --- a/dotcom-rendering/src/components/FixedMediumFastXII.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { Card25Media25, CardDefault } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedMediumFastXII = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice25 = trails.slice(0, 4); - const remaining = trails.slice(4, 12); - - return ( - <> -
    - {firstSlice25.map((trail, index) => { - return ( -
  • 0} - > - -
  • - ); - })} -
-
    - {remaining.map((trail, index) => { - return ( -
  • - -
  • - ); - })} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedMediumSlowVI.stories.tsx b/dotcom-rendering/src/components/FixedMediumSlowVI.stories.tsx deleted file mode 100644 index fa7244462ce..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowVI.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedMediumSlowVI } from './FixedMediumSlowVI'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedMediumSlowVI, - title: 'Front Containers/Deprecated Containers/FixedMediumSlowVI', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedMediumSlowVI'; diff --git a/dotcom-rendering/src/components/FixedMediumSlowVI.tsx b/dotcom-rendering/src/components/FixedMediumSlowVI.tsx deleted file mode 100644 index fc956efa2d9..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowVI.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { - Card25Media25TallNoTrail, - Card25Media25TallSmallHeadline, - Card75Media50Right, -} from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedMediumSlowVI = ({ - trails, - containerPalette, - showAge, - imageLoading, - serverTime, -}: Props) => { - const firstSlice75 = trails.slice(0, 1); - const firstSlice25 = trails.slice(1, 2); - const secondSlice25 = trails.slice(2, 6); - - return ( - <> -
    - {firstSlice75.map((trail) => ( -
  • - -
  • - ))} - {firstSlice25.map((trail) => ( -
  • - -
  • - ))} -
-
    - {secondSlice25.map((trail, index) => ( -
  • 0}> - -
  • - ))} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedMediumSlowVII.stories.tsx b/dotcom-rendering/src/components/FixedMediumSlowVII.stories.tsx deleted file mode 100644 index ac23ff1102b..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowVII.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedMediumSlowVII } from './FixedMediumSlowVII'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedMediumSlowVII, - title: 'Front Containers/Deprecated Containers/FixedMediumSlowVII', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedMediumSlowVII'; diff --git a/dotcom-rendering/src/components/FixedMediumSlowVII.tsx b/dotcom-rendering/src/components/FixedMediumSlowVII.tsx deleted file mode 100644 index 2a55104f77b..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowVII.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { - Card25Media25Tall, - Card25Media25TallSmallHeadline, - Card50Media50, -} from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedMediumSlowVII = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice50 = trails.slice(0, 1); - const firstSlice25 = trails.slice(1, 3); - const secondSlice25 = trails.slice(3, 7); - - return ( - <> -
    - {firstSlice50.map((trail) => ( -
  • - -
  • - ))} - - {firstSlice25.map((trail) => ( -
  • - -
  • - ))} -
-
    - {secondSlice25.map((trail, index) => ( -
  • 0}> - -
  • - ))} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.stories.tsx b/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.stories.tsx deleted file mode 100644 index cf4c1f7914d..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.stories.tsx +++ /dev/null @@ -1,154 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedMediumSlowXIIMPU } from './FixedMediumSlowXIIMPU'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedMediumSlowXIIMPU, - title: 'Front Containers/Deprecated Containers/FixedMediumSlowXIIMPU', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const OneTrail = () => ( - - - -); -OneTrail.storyName = 'with one trail'; - -export const TwoTrails = () => ( - - - -); -TwoTrails.storyName = 'with two trails'; - -export const ThreeTrails = () => ( - - - -); -ThreeTrails.storyName = 'with three trails'; - -export const FourTrails = () => ( - - - -); -FourTrails.storyName = 'with four trails'; - -export const FiveTrails = () => ( - - - -); -FiveTrails.storyName = 'with five trails'; - -export const SixTrails = () => ( - - - -); -SixTrails.storyName = 'with six trails'; - -export const SevenTrails = () => ( - - - -); -SevenTrails.storyName = 'with seven trails'; - -export const EightTrails = () => ( - - - -); -EightTrails.storyName = 'with eight trails'; - -export const NineTrails = () => ( - - - -); -NineTrails.storyName = 'with nine trails'; diff --git a/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.tsx b/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.tsx deleted file mode 100644 index 03d706ec422..00000000000 --- a/dotcom-rendering/src/components/FixedMediumSlowXIIMPU.tsx +++ /dev/null @@ -1,206 +0,0 @@ -import { - Card100Media100Tall, - Card33Media33MobileTopTall, - Card33Media33Tall, - CardDefault, -} from '../lib/cardWrappers'; -import { shouldPadWrappableRows } from '../lib/dynamicSlices'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - containerPalette?: DCRContainerPalette; - imageLoading: Loading; - serverTime?: number; - showAge?: boolean; -}; - -/* .___________.___________.___________. - * |###########|###########|###########| - * | | | | - * |___________|___________|___________| - */ -const Card33_Card33_Card33 = ({ - trails, - containerPalette, - showAge, - padBottom, - imageLoading, - serverTime, -}: { - trails: DCRFrontCard[]; - imageLoading: Loading; - serverTime?: number; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - padBottom?: boolean; -}) => { - const card33 = trails.slice(0, 1); - const cards33 = trails.slice(1, 3); - - return ( -
    - {card33.map((trail) => ( -
  • - -
  • - ))} - {cards33.map((trail) => ( -
  • - -
  • - ))} -
- ); -}; - -/* .___________.___________. - * |###########|###########| - * | | | - * |___________|___________| - */ -const Card50_Card50 = ({ - trails, - containerPalette, - showAge, - padBottom, - imageLoading, - serverTime, -}: { - trails: DCRFrontCard[]; - imageLoading: Loading; - serverTime?: number; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - padBottom?: boolean; -}) => { - const card50 = trails.slice(0, 1); - const cards50 = trails.slice(1); - return ( -
    - {card50.map((trail) => ( -
  • - -
  • - ))} - {cards50.map((trail) => ( -
  • - -
  • - ))} -
- ); -}; - -/** - * @deprecated Adverts are no longer shown within containers. We no - * longer use containers that reserve a space for an MPU advert. - */ -export const FixedMediumSlowXIIMPU = ({ - trails, - containerPalette, - showAge, - imageLoading, - serverTime, -}: Props) => { - const firstSlice = trails.slice(0, 3); - const remaining = trails.slice(3, 9); - return ( - <> - {trails.length === 1 ? ( -
    -
  • - {trails.map((trail) => ( - - ))} -
  • -
- ) : trails.length === 2 ? ( - - ) : ( - - )} - -
    - {remaining.map((trail, trailIndex) => ( -
  • - -
  • - ))} -
- - ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallFastVIII.stories.tsx b/dotcom-rendering/src/components/FixedSmallFastVIII.stories.tsx deleted file mode 100644 index ab825c68e9f..00000000000 --- a/dotcom-rendering/src/components/FixedSmallFastVIII.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallFastVIII } from './FixedSmallFastVIII'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallFastVIII, - title: 'Front Containers/Deprecated Containers/FixedSmallFastVIII', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallFastVIII'; diff --git a/dotcom-rendering/src/components/FixedSmallFastVIII.tsx b/dotcom-rendering/src/components/FixedSmallFastVIII.tsx deleted file mode 100644 index e74d16ce15e..00000000000 --- a/dotcom-rendering/src/components/FixedSmallFastVIII.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { Card25Media25, CardDefault } from '../lib/cardWrappers'; -import { shouldPadWrappableRows } from '../lib/dynamicSlices'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallFastVIII = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - if (!trails[0]) return null; - const firstSlice25 = trails.slice(0, 2); - const remaining = trails.slice(2, 8); - - return ( -
    - {firstSlice25.map((card, cardIndex) => { - return ( -
  • - -
  • - ); - })} -
  • -
      - {remaining.map((card, cardIndex) => { - const columns = 2; - return ( -
    • - -
    • - ); - })} -
    -
  • -
- ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallSlowI.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowI.stories.tsx deleted file mode 100644 index a309b053d6a..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowI.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowI } from './FixedSmallSlowI'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowI, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowI', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallSlowI'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowI.tsx b/dotcom-rendering/src/components/FixedSmallSlowI.tsx deleted file mode 100644 index 69c8d18182e..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowI.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Card100Media75 } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallSlowI = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice100 = trails.slice(0, 1); - - return ( -
    - {firstSlice100.map((card) => ( -
  • - -
  • - ))} -
- ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallSlowIII.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowIII.stories.tsx deleted file mode 100644 index df9f8a3da56..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowIII.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowIII } from './FixedSmallSlowIII'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowIII, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowIII', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallSlowIII'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowIII.tsx b/dotcom-rendering/src/components/FixedSmallSlowIII.tsx deleted file mode 100644 index 16be9d1b7c9..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowIII.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { Card25Media25Tall, Card50Media50 } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallSlowIII = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice50 = trails.slice(0, 1); - const firstSlice25 = trails.slice(1, 3); - - return ( -
    - {firstSlice50.map((trail) => ( -
  • - -
  • - ))} - {firstSlice25.map((trail) => ( -
  • - -
  • - ))} -
- ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallSlowIV.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowIV.stories.tsx deleted file mode 100644 index 88599e5b485..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowIV.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowIV } from './FixedSmallSlowIV'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowIV, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowIV', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallSlowIV'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowIV.tsx b/dotcom-rendering/src/components/FixedSmallSlowIV.tsx deleted file mode 100644 index 61abae4aac6..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowIV.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Card25Media25 } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallSlowIV = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice25 = trails.slice(0, 4); - - return ( -
    - {firstSlice25.map((trail, index) => { - return ( -
  • 0}> - -
  • - ); - })} -
- ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallSlowVHalf.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowVHalf.stories.tsx deleted file mode 100644 index 35da2505f36..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVHalf.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowVHalf } from './FixedSmallSlowVHalf'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowVHalf, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowVHalf', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallSlowVHalf'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowVHalf.tsx b/dotcom-rendering/src/components/FixedSmallSlowVHalf.tsx deleted file mode 100644 index 049dc5995e2..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVHalf.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { Card50Media50, CardDefaultMediaMobile } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallSlowVHalf = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice50 = trails.slice(0, 1); - const remaining = trails.slice(1, 5); - - return ( -
    - {firstSlice50.map((trail) => { - return ( -
  • - -
  • - ); - })} -
  • -
      - {remaining.map((trail) => { - return ( -
    • - -
    • - ); - })} -
    -
  • -
- ); -}; diff --git a/dotcom-rendering/src/components/FixedSmallSlowVMPU.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowVMPU.stories.tsx deleted file mode 100644 index 8d5c28ba012..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVMPU.stories.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowVMPU } from './FixedSmallSlowVMPU'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowVMPU, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowVMPU', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const FourCards = () => ( - - - -); - -FourCards.storyName = 'With 4 cards'; - -export const ThreeCards = () => ( - - - -); - -ThreeCards.storyName = 'With 3 cards'; - -export const TwoCards = () => ( - - - -); - -TwoCards.storyName = 'With 2 cards'; - -export const OneCard = () => ( - - - -); - -OneCard.storyName = 'With 1 card'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowVMPU.tsx b/dotcom-rendering/src/components/FixedSmallSlowVMPU.tsx deleted file mode 100644 index 8af6450cdde..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVMPU.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { Card25Media25SmallHeadline } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -/** - * @deprecated Adverts are no longer shown within containers. We no - * longer use containers that reserve a space for an MPU advert. - */ -export const FixedSmallSlowVMPU = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => ( -
    - {trails.slice(0, 4).map((card, cardIndex) => { - return ( -
  • 0} - key={card.url} - > - -
  • - ); - })} -
-); diff --git a/dotcom-rendering/src/components/FixedSmallSlowVThird.stories.tsx b/dotcom-rendering/src/components/FixedSmallSlowVThird.stories.tsx deleted file mode 100644 index 81e5c656877..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVThird.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { breakpoints } from '@guardian/source/foundations'; -import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; -import { trails } from '../../fixtures/manual/trails'; -import { FixedSmallSlowVThird } from './FixedSmallSlowVThird'; -import { FrontSection } from './FrontSection'; - -export default { - component: FixedSmallSlowVThird, - title: 'Front Containers/Deprecated Containers/FixedSmallSlowVThird', - parameters: { - chromatic: { - viewports: [ - breakpoints.mobile, - breakpoints.tablet, - breakpoints.wide, - ], - }, - }, -}; - -export const Default = () => ( - - - -); -Default.storyName = 'FixedSmallSlowVThird'; diff --git a/dotcom-rendering/src/components/FixedSmallSlowVThird.tsx b/dotcom-rendering/src/components/FixedSmallSlowVThird.tsx deleted file mode 100644 index 61b36ce02ff..00000000000 --- a/dotcom-rendering/src/components/FixedSmallSlowVThird.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { Card25Media25 } from '../lib/cardWrappers'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { LI } from './Card/components/LI'; -import { UL } from './Card/components/UL'; -import type { Loading } from './CardPicture'; -import { FrontCard } from './FrontCard'; - -type Props = { - trails: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}; - -export const FixedSmallSlowVThird = ({ - trails, - containerPalette, - showAge, - serverTime, - imageLoading, -}: Props) => { - const firstSlice25 = trails.slice(0, 2); - const remaining = trails.slice(2, 5); - - return ( -
    - {firstSlice25.map((trail, index) => { - return ( -
  • 0} - percentage="25%" - > - -
  • - ); - })} -
  • -
      - {remaining.map((trail) => { - return ( -
    • - -
    • - ); - })} -
    -
  • -
- ); -}; diff --git a/dotcom-rendering/src/frontend/feFront.ts b/dotcom-rendering/src/frontend/feFront.ts index a9fcb040380..070e19ccf06 100644 --- a/dotcom-rendering/src/frontend/feFront.ts +++ b/dotcom-rendering/src/frontend/feFront.ts @@ -40,19 +40,6 @@ interface FEPressedPage { /* This list of containers supported in DCR must be kept up to date with frontend **manually**. * @see https://github.com/guardian/frontend/blob/167dce23a8453ed13a97fbd23c7fc45ecb06e3fe/facia/app/services/dotcomrendering/FaciaPicker.scala#L21-L45 */ export type FEContainer = - | 'fixed/large/slow-XIV' - | 'fixed/medium/fast-XI' - | 'fixed/medium/fast-XII' - | 'fixed/medium/slow-VI' - | 'fixed/medium/slow-VII' - | 'fixed/medium/slow-XII-mpu' - | 'fixed/small/fast-VIII' - | 'fixed/small/slow-I' - | 'fixed/small/slow-III' - | 'fixed/small/slow-IV' - | 'fixed/small/slow-V-half' - | 'fixed/small/slow-V-mpu' - | 'fixed/small/slow-V-third' | 'fixed/thrasher' | 'nav/list' | 'nav/media-list' diff --git a/dotcom-rendering/src/frontend/schemas/feFront.json b/dotcom-rendering/src/frontend/schemas/feFront.json index e55d29ae127..a268d690f82 100644 --- a/dotcom-rendering/src/frontend/schemas/feFront.json +++ b/dotcom-rendering/src/frontend/schemas/feFront.json @@ -3393,19 +3393,6 @@ }, "FEContainer": { "enum": [ - "fixed/large/slow-XIV", - "fixed/medium/fast-XI", - "fixed/medium/fast-XII", - "fixed/medium/slow-VI", - "fixed/medium/slow-VII", - "fixed/medium/slow-XII-mpu", - "fixed/small/fast-VIII", - "fixed/small/slow-I", - "fixed/small/slow-III", - "fixed/small/slow-IV", - "fixed/small/slow-V-half", - "fixed/small/slow-V-mpu", - "fixed/small/slow-V-third", "fixed/thrasher", "flexible/general", "flexible/special", diff --git a/dotcom-rendering/src/lib/cardWrappers.tsx b/dotcom-rendering/src/lib/cardWrappers.tsx index 7a70efebecf..6d7d0c893e2 100644 --- a/dotcom-rendering/src/lib/cardWrappers.tsx +++ b/dotcom-rendering/src/lib/cardWrappers.tsx @@ -143,381 +143,21 @@ export const Card100Media75 = ({ ); }; -/** - * ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃ ┃ - * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ - * Card designed to take up 100% of the container, with media that takes up 75% - * - * Options: - * - Huge headline (large on mobile) - * - Jumbo image on the top (top on mobile) - * - No trail text - * - Up to 4 supporting content items, always aligned horizontal - */ -export const Card100Media100 = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ - * ┃ ┃ - * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ - * Card designed to take up 100% of the container, with media that takes up 75% - * - * Options: - * - Medium headline (large on mobile) - * - Jumbo image on the top (top on mobile) - * - Trail text - * - Up to 2 supporting content items, always aligned vertically - */ - -export const Card100Media100Tall = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┐ - * ┃ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ 25% ┊ - * ┃ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃Remaining┊ - * ┃ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ ┊ - * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 75% of the container, with media that takes up 50% - * - * Options: - * - Large headline (large on mobile) - * - Large image on the right (top on mobile) - * - Trail text - * - Up to 3 supporting content items, 1-2 aligned vertical, 3 aligned horizontal - */ -export const Card75Media50Right = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - 2 - ? 'horizontal' - : 'vertical' - } - mediaPositionOnDesktop="right" - mediaSize="large" - mediaPositionOnMobile="top" - imageLoading={imageLoading} - isTagPage={isTagPage} - headlineSizes={{ desktop: 'small', tablet: 'xsmall' }} - aspectRatio={aspectRatio} - /> - ); -}; - -/** - * ┌┈┈┈┈┈┈┈┈┈┲━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ - * ┊ 25% ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ┃ - * ┊Remaining┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ┃ - * ┊ ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ┃ - * └┈┈┈┈┈┈┈┈┈┺━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ - * Card designed to take up 75% of the container, with media that takes up 50% - * - * Options: - * - Large headline (large on mobile) - * - Large image on the left (top on mobile) - * - Trail text - * - Up to 3 supporting content items, 1-2 aligned vertical, 3 aligned horizontal - */ -export const Card75Media50Left = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - 2 - ? 'horizontal' - : 'vertical' - } - mediaPositionOnDesktop="left" - mediaPositionOnMobile="top" - mediaSize="large" - imageLoading={imageLoading} - isTagPage={isTagPage} - headlineSizes={{ desktop: 'small', tablet: 'xsmall' }} - aspectRatio={aspectRatio} - /> - ); -}; - -/** - * ┏━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒┃ 75% ┊ - * ┃▒▒▒▒▒▒▒▒▒┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 25% of the container, with media that takes up 25% - * - * Options: - * - Medium headline (medium on mobile) - * - Small image on the top (left on mobile) - * - No trail text - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card25Media25 = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒┃ 75% ┊ - * ┃▒▒▒▒▒▒▒▒▒┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 25% of the container, with media that takes up 25% - * - * Options: - * - Medium headline (medium on mobile) - * - Small image on the top (left on mobile) - * - No trail text - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card25Media25SmallHeadline = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒┃ ┊ - * ┃▒▒▒▒▒▒▒▒▒┃ 75% ┊ - * ┃ ┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 25% of the container, with media that takes up 25% - * - * Options: - * - Medium headline (medium on mobile) - * - Small image on the top (left on mobile) - * - Trail text when there is no supporting content - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card25Media25Tall = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒┃ ┊ - * ┃▒▒▒▒▒▒▒▒▒┃ 75% ┊ - * ┃ ┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 25% of the container, with media that takes up 25% - * - * Options: - * - Medium headline (medium on mobile) - * - Small image on the top (left on mobile) - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card25Media25TallNoTrail = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - /** * ┏━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒┃ ┊ * ┃▒▒▒▒▒▒▒▒▒┃ 75% ┊ - * ┃ ┃ Remaining ┊ + * ┃▒▒▒▒▒▒▒▒▒┃ Remaining ┊ * ┃ ┃ ┊ * ┗━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ * Card designed to take up 25% of the container, with media that takes up 25% * * Options: - * - Small headline (medium on mobile) + * - Medium headline (medium on mobile) * - Small image on the top (left on mobile) + * - No trail text * - Up to 2 supporting content items, always aligned vertical */ -export const Card25Media25TallSmallHeadline = ({ +export const Card25Media25 = ({ trail, showAge, containerPalette, @@ -529,6 +169,8 @@ export const Card25Media25TallSmallHeadline = ({ return ( @@ -587,91 +228,6 @@ export const Card50Media50 = ({ ); }; -/** - * ┏━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ ┊ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ 50% ┊ - * ┃ ┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 50% of the container, with media that takes up 50% - * - * Options: - * - Large headline (large on mobile) - * - Medium image on the top (top on mobile) - * - Trail text - * - Up to 3 supporting content items, always aligned horizontal - */ -export const Card50Media50Tall = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ 33% ┊ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━━━━━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 66% of the container, with media that takes up 66% - * - * Options: - * - Medium headline (medium on mobile) - * - Large image on the top (top on mobile) - * - Trail text - * - No supporting content - */ -export const Card66Media66 = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - /** * ┏━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ * ┃▒▒▒▒▒▒▒▒▒▒▒▒┃ 66% ┊ @@ -712,90 +268,6 @@ export const Card33Media33 = ({ /> ); }; -/** - * ┏━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒┃ 66% ┊ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 33% of the container, with media that takes up 33% - * - * Options: - * - Medium headline (medium on mobile) - * - Medium image on the top (left on mobile) - * - No trail text - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card33Media33Tall = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒┃ 66% ┊ - * ┃▒▒▒▒▒▒▒▒▒▒▒▒┃ Remaining ┊ - * ┃ ┃ ┊ - * ┗━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up 33% of the container, with media that takes up 33% - * - * Options: - * - Medium headline (large on mobile) - * - Medium image at the top, including on mobile - * - Trail text - * - Up to 2 supporting content items, always aligned vertical - */ -export const Card33Media33MobileTopTall = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; /** * ┏━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ @@ -833,81 +305,3 @@ export const CardDefault = ({ /> ); }; - -/** - * ┏━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃ ▒▒▒▒ ┃ Any% Remaining ┊ - * ┗━━━━━━━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up any width of container, with small left media - * - * Options: - * - Small headline (small on mobile) - * - Small image on the left (none on mobile) - * - No trail text - * - No supporting content - */ -export const CardDefaultMedia = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; - -/** - * ┏━━━━━━━━━━━━━━━━━━┱┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐ - * ┃ ▒▒▒▒ ┃ Any% Remaining ┊ - * ┗━━━━━━━━━━━━━━━━━━┹┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘ - * Card designed to take up any width of container, with small left media - * - * Options: - * - Small headline (small on mobile) - * - Small image on the left (left on mobile) - * - No trail text - * - No supporting content - */ -export const CardDefaultMediaMobile = ({ - trail, - showAge, - containerPalette, - imageLoading, - isTagPage, - serverTime, - aspectRatio, -}: TrailProps) => { - return ( - - ); -}; diff --git a/dotcom-rendering/src/lib/dynamicSlices.tsx b/dotcom-rendering/src/lib/dynamicSlices.tsx index c64f1b4ade5..a7dbea201b9 100644 --- a/dotcom-rendering/src/lib/dynamicSlices.tsx +++ b/dotcom-rendering/src/lib/dynamicSlices.tsx @@ -1,64 +1,3 @@ -import { LI } from '../components/Card/components/LI'; -import { UL } from '../components/Card/components/UL'; -import type { Loading } from '../components/CardPicture'; -import type { DCRContainerPalette, DCRFrontCard } from '../types/front'; -import { Card25Media25Tall, Card50Media50 } from './cardWrappers'; - -/* ._________________.________.________. - * |#################|########|########| - * | | | | - * |_________________|________|________| - */ -export const Card50_Card25_Card25 = ({ - cards, - containerPalette, - showAge, - serverTime, - imageLoading, -}: { - cards: DCRFrontCard[]; - imageLoading: Loading; - containerPalette?: DCRContainerPalette; - showAge?: boolean; - serverTime?: number; -}) => { - const card50 = cards.slice(0, 1); - const cards25 = cards.slice(1, 3); - - return ( -
    - {card50.map((trail) => ( -
  • - -
  • - ))} - - {cards25.map((trail) => ( -
  • - -
  • - ))} -
- ); -}; - /** * Abstraction to decide whether to show padding on wrapped rows of cards. * diff --git a/dotcom-rendering/src/lib/getFrontsAdPositions.test.ts b/dotcom-rendering/src/lib/getFrontsAdPositions.test.ts index 0eb6f82b616..fb07bbb378e 100644 --- a/dotcom-rendering/src/lib/getFrontsAdPositions.test.ts +++ b/dotcom-rendering/src/lib/getFrontsAdPositions.test.ts @@ -17,7 +17,7 @@ import { } from './getFrontsAdPositions'; const testCollection: AdCandidate = { - collectionType: 'fixed/large/slow-XIV', + collectionType: 'flexible/general', displayName: 'Test Collection', containerLevel: 'Primary', containerPalette: 'EventPalette', @@ -73,18 +73,18 @@ describe('Mobile Ads', () => { // We used https://www.theguardian.com/uk/commentisfree as a blueprint it('Non-network front, with more than 4 collections, without thrashers', () => { const testCollections: AdCandidate[] = [ - { ...testCollection, collectionType: 'fixed/large/slow-XIV' }, // Ad position (0) - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (2) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (4) + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (0) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (2) + { ...testCollection, collectionType: 'static/medium/4' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (4) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (6) { ...testCollection, collectionType: 'flexible/general' }, - { ...testCollection, collectionType: 'fixed/small/slow-I' }, // Ad position (6) - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (8) - { ...testCollection, collectionType: 'fixed/small/slow-III' }, - { ...testCollection, collectionType: 'fixed/medium/fast-XII' }, // Ignored - is before merch high position - { ...testCollection, collectionType: 'fixed/small/fast-VIII' }, // Ignored - is merch high position + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (8) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is before merch high position + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -97,28 +97,28 @@ describe('Mobile Ads', () => { it('UK Network Front, with more than 4 collections, with thrashers at various places', () => { const testCollections: AdCandidate[] = [ { ...testCollection, collectionType: 'flexible/general' }, // Ad position (0) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, + { ...testCollection, collectionType: 'static/medium/4' }, { ...testCollection, collectionType: 'flexible/special' }, // Ad position (2) { ...testCollection, collectionType: 'flexible/special' }, - { ...testCollection, collectionType: 'fixed/small/slow-V-mpu' }, // Ad position (4) + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (4) { ...testCollection, collectionType: 'flexible/special' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (8) { ...testCollection, collectionType: 'flexible/general' }, { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (11) { ...testCollection, collectionType: 'flexible/general' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (14) { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, { ...testCollection, collectionType: 'scrollable/feature' }, // Ad position (17) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (19) + { ...testCollection, collectionType: 'static/medium/4' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (19) { ...testCollection, collectionType: 'flexible/general' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - is before merch high position - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ignored - is merch high position + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - is before merch high position + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -131,24 +131,24 @@ describe('Mobile Ads', () => { it('International Network Front, with more than 4 collections, with thrashers at various places', () => { const testCollections: AdCandidate[] = [ { ...testCollection, collectionType: 'flexible/general' }, // Ad position (0) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, + { ...testCollection, collectionType: 'static/medium/4' }, { ...testCollection, collectionType: 'flexible/special' }, // Ad position (2) { ...testCollection, collectionType: 'flexible/general' }, { ...testCollection, collectionType: 'flexible/special' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (5) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, + { ...testCollection, collectionType: 'static/medium/4' }, { ...testCollection, collectionType: 'flexible/general' }, // Ad position (7) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (11) { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, { ...testCollection, collectionType: 'flexible/general' }, // Ad position (14) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (16) + { ...testCollection, collectionType: 'static/medium/4' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (16) { ...testCollection, collectionType: 'scrollable/feature' }, - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ignored - is merch high position + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -161,24 +161,24 @@ describe('Mobile Ads', () => { it('US Network Front, with more than 4 collections, with thrashers at various places', () => { const testCollections: AdCandidate[] = [ { ...testCollection, collectionType: 'flexible/general' }, // Ad position (0) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (2) + { ...testCollection, collectionType: 'static/medium/4' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (2) { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, { ...testCollection, collectionType: 'flexible/special' }, // Ad position (5) { ...testCollection, collectionType: 'flexible/special' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, - { ...testCollection, collectionType: 'fixed/small/slow-III' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (9) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, + { ...testCollection, collectionType: 'static/medium/4' }, { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (12) - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, + { ...testCollection, collectionType: 'flexible/general' }, { ...testCollection, collectionType: 'flexible/general' }, // Ad position (14) { ...testCollection, collectionType: 'flexible/general' }, - { ...testCollection, collectionType: 'fixed/small/slow-V-mpu' }, // Ad position (16) + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (16) { ...testCollection, collectionType: 'scrollable/feature' }, - { ...testCollection, collectionType: 'fixed/small/slow-III' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -192,20 +192,20 @@ describe('Mobile Ads', () => { it('Lifeandstyle front, with more than 4 collections, with thrashers at various places', () => { const testCollections: AdCandidate[] = [ { ...testCollection, collectionType: 'flexible/special' }, // Ad position (0) - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ad position (3) - { ...testCollection, collectionType: 'fixed/small/slow-V-third' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (3) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (6) - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'static/medium/4' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ad position (9) - { ...testCollection, collectionType: 'fixed/medium/slow-XII-mpu' }, - { ...testCollection, collectionType: 'fixed/small/fast-VIII' }, // Ignored - before thrasher + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (9) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - before thrasher { ...testCollection, collectionType: 'fixed/thrasher' }, // Ad position (12) - { ...testCollection, collectionType: 'fixed/small/slow-III' }, - { ...testCollection, collectionType: 'fixed/small/slow-I' }, // Ignored - is merch high position + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -218,18 +218,18 @@ describe('Mobile Ads', () => { it('Recipes front, with more than 4 collections, with thrasher at the first position', () => { const testCollections: AdCandidate[] = [ { ...testCollection, collectionType: 'fixed/thrasher' }, // Ignored - is first container and thrasher - { ...testCollection, collectionType: 'fixed/medium/slow-VI' }, // Ad position (1) - { ...testCollection, collectionType: 'fixed/small/slow-V-third' }, - { ...testCollection, collectionType: 'fixed/medium/slow-XII-mpu' }, // Ad position (3) - { ...testCollection, collectionType: 'fixed/medium/fast-XII' }, - { ...testCollection, collectionType: 'fixed/small/slow-V-third' }, // Ad position (5) - { ...testCollection, collectionType: 'fixed/small/fast-VIII' }, - { ...testCollection, collectionType: 'fixed/medium/fast-XI' }, // Ad position (7) - { ...testCollection, collectionType: 'fixed/small/slow-III' }, - { ...testCollection, collectionType: 'fixed/small/slow-IV' }, // Ad position (9) - { ...testCollection, collectionType: 'fixed/small/slow-V-half' }, - { ...testCollection, collectionType: 'fixed/small/slow-V-third' }, // Ignored - is before merch high position - { ...testCollection, collectionType: 'fixed/small/fast-VIII' }, // Ignored - is merch high position + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (1) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (3) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (5) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ad position (7) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'static/medium/4' }, // Ad position (9) + { ...testCollection, collectionType: 'flexible/general' }, + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is before merch high position + { ...testCollection, collectionType: 'flexible/general' }, // Ignored - is merch high position { ...testCollection, collectionType: 'news/most-popular' }, // Ignored - is most viewed container ]; @@ -350,13 +350,13 @@ describe('Desktop Ads', () => { it('calculates ad positions correctly for an example of the UK network front', () => { const adPositions = getDesktopAdPositions(testCollectionsUk, 'uk'); - expect(adPositions).toEqual([3, 6, 8, 11, 14, 17, 20]); + expect(adPositions).toEqual([3, 6, 8, 14, 17]); }); it('calculates ad positions correctly for an example of the US network front', () => { const adPositions = getDesktopAdPositions(testCollectionsUs, 'us'); - expect(adPositions).toEqual([3, 6, 8, 11, 14, 18, 20, 22]); + expect(adPositions).toEqual([3, 6, 10, 12, 19]); }); it('does NOT insert ads above or below branded content', () => { diff --git a/dotcom-rendering/src/lib/getFrontsAdPositions.ts b/dotcom-rendering/src/lib/getFrontsAdPositions.ts index 40c123de1e1..e6fca6bc194 100644 --- a/dotcom-rendering/src/lib/getFrontsAdPositions.ts +++ b/dotcom-rendering/src/lib/getFrontsAdPositions.ts @@ -260,8 +260,6 @@ const getCollectionHeight = (collection: AdCandidate): number => { case 'fixed/thrasher': return 0.5; - case 'fixed/small/slow-IV': - case 'fixed/small/slow-V-mpu': case 'nav/list': case 'nav/media-list': case 'scrollable/small': @@ -269,25 +267,12 @@ const getCollectionHeight = (collection: AdCandidate): number => { case 'static/medium/4': return 1; - case 'fixed/small/slow-I': - case 'fixed/small/slow-III': - case 'fixed/small/slow-V-third': - case 'fixed/small/slow-V-half': - case 'fixed/small/fast-VIII': case 'scrollable/feature': return 1.5; - case 'fixed/medium/slow-VI': - case 'fixed/medium/slow-VII': - case 'fixed/medium/slow-XII-mpu': - case 'fixed/medium/fast-XI': - case 'fixed/medium/fast-XII': case 'static/feature/2': return 2; - case 'fixed/large/slow-XIV': - return 3; - case 'flexible/special': return getFlexibleSpecialHeight(grouped);