Skip to content

Commit 4e4344d

Browse files
authored
Merge branch 'main' into guardian-eslint-config-typescript-v12
2 parents 2f084a3 + 16b8706 commit 4e4344d

File tree

15 files changed

+142
-32
lines changed

15 files changed

+142
-32
lines changed

apps-rendering/src/client/article.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,26 +85,28 @@ function followToggle(
8585
if (isFollowing) {
8686
void bridgetClient.unfollow(topic).then((unfollow) => {
8787
// unfollow will be true if the update was successful
88-
unfollow &&
88+
if (unfollow) {
8989
ReactDOM.render(
9090
h(followStatusComponent, {
9191
isFollowing: false,
9292
contributorName: topic.displayName,
9393
}),
9494
followStatus,
9595
);
96+
}
9697
});
9798
} else {
9899
void bridgetClient.follow(topic).then((follow) => {
99100
// follow will be true if the update was successful
100-
follow &&
101+
if (follow) {
101102
ReactDOM.render(
102103
h(followStatusComponent, {
103104
isFollowing: true,
104105
contributorName: topic.displayName,
105106
}),
106107
followStatus,
107108
);
109+
}
108110
});
109111
}
110112
});
@@ -167,16 +169,19 @@ function conditionallyRenderFollowTagComponent(
167169
isMyGuardianEnabled,
168170
tagIsFollowingState,
169171
]) => {
170-
isBridgetCompatible &&
172+
if (
173+
isBridgetCompatible &&
171174
isMyGuardianEnabled &&
172-
followTagStatus &&
175+
followTagStatus
176+
) {
173177
ReactDOM.render(
174178
h(FollowTagStatus, {
175179
isFollowing: tagIsFollowingState,
176180
contributorName: topic.displayName,
177181
}),
178182
followTagStatus,
179183
);
184+
}
180185

181186
followTag?.addEventListener('click', followTagClick);
182187
followTag?.setAttribute('aria-hidden', 'false');

apps-rendering/src/components/editions/galleryImage/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,9 @@ const getCaptionDetails = (oDoc: Option<DocumentFragment>): CaptionDetails => {
9494
): CaptionDetails => {
9595
const detailsSection = details[section];
9696

97-
node.textContent &&
98-
detailsSection.kind === OptionKind.Some &&
97+
if (node.textContent && detailsSection.kind === OptionKind.Some) {
9998
detailsSection.value.push(node.textContent);
99+
}
100100

101101
return details;
102102
};

dotcom-rendering/fixtures/manual/trails.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,49 @@ export const videoTrails: [DCRFrontCard, DCRFrontCard] = [
605605
},
606606
];
607607

608+
export const newsletterTrails: [DCRFrontCard, DCRFrontCard] = [
609+
{
610+
format: { design: 0, display: 0, theme: 0 },
611+
dataLinkName: 'news | group-0 | card-@4',
612+
url: '/global/2022/sep/20/sign-up-for-the-guide-newsletter-our-free-pop-culture-email',
613+
headline: 'Sign up for a weekly dose of pop culture',
614+
trailText:
615+
'The best new music, film, TV, podcasts and more direct to your inbox, plus hidden gems and reader recommendations',
616+
webPublicationDate: '2022-09-20T10:57:04.000Z',
617+
kickerText: 'The Guide',
618+
isNewsletter: true,
619+
image: {
620+
src: 'https://media.guim.co.uk/ce2e59cfa2ab7db34cba24adbf20910976e55604/0_55_501_401/master/501.jpg',
621+
altText: 'The Guide Newsletter Design',
622+
},
623+
showQuotedHeadline: false,
624+
discussionApiUrl: 'https://discussion.theguardian.com/discussion-api',
625+
isExternalLink: false,
626+
showLivePlayable: false,
627+
isImmersive: false,
628+
},
629+
{
630+
format: { design: 0, display: 0, theme: 0 },
631+
dataLinkName: 'news | group-0 | card-@2',
632+
url: '/info/2024/oct/10/sign-up-for-the-filter-newsletter-our-free-weekly-buying-advice',
633+
headline: 'Sign up our free weekly buying advice newsletter',
634+
trailText:
635+
'Get smart, sustainable shopping advice from the Filter team straight to your inbox, every Sunday<br><br>The Guardian’s journalism is independent. We will earn a commission if you buy something through an affiliate link.',
636+
webPublicationDate: '2024-10-10T10:30:16.000Z',
637+
kickerText: 'The Filter',
638+
discussionApiUrl: 'https://discussion.theguardian.com/discussion-api',
639+
isNewsletter: true,
640+
image: {
641+
src: 'https://media.guim.co.uk/e5269c957a8e19da44d76b53f349b8d5a3b6a98f/0_0_5000_3000/master/5000.jpg',
642+
altText: 'The Filter',
643+
},
644+
showQuotedHeadline: false,
645+
isExternalLink: false,
646+
showLivePlayable: false,
647+
isImmersive: false,
648+
},
649+
];
650+
608651
export const loopVideoCard: DCRFrontCard = {
609652
...defaultCardProps,
610653
dataLinkName: 'news | group-0 | card-@2',

dotcom-rendering/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"@guardian/identity-auth-frontend": "8.1.0",
4040
"@guardian/libs": "26.0.1",
4141
"@guardian/ophan-tracker-js": "2.6.1",
42-
"@guardian/react-crossword": "6.3.0",
42+
"@guardian/react-crossword": "11.1.0",
4343
"@guardian/shimport": "1.0.2",
4444
"@guardian/source": "11.3.0",
4545
"@guardian/source-development-kitchen": "18.1.1",

dotcom-rendering/src/components/ScrollableMedium.stories.tsx

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ import { breakpoints } from '@guardian/source/foundations';
22
import type { Meta, StoryObj } from '@storybook/react';
33
import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl';
44
import { trails } from '../../fixtures/manual/highlights-trails';
5+
import {
6+
audioTrails,
7+
galleryTrails,
8+
newsletterTrails,
9+
videoTrails,
10+
} from '../../fixtures/manual/trails';
511
import type { DCRContainerPalette } from '../types/front';
612
import { FrontSection } from './FrontSection';
713
import { ScrollableMedium } from './ScrollableMedium.importable';
@@ -42,11 +48,17 @@ export default meta;
4248

4349
type Story = StoryObj<typeof ScrollableMedium>;
4450

45-
export const WithMultipleCards = {} satisfies Story;
51+
export const WithEightCards = {} satisfies Story;
4652

47-
export const WithOneCard = {
53+
export const WithFourCards = {
4854
args: {
49-
trails: trails.slice(0, 1),
55+
trails: trails.slice(0, 4),
56+
},
57+
} satisfies Story;
58+
59+
export const WithThreeCards = {
60+
args: {
61+
trails: trails.slice(0, 3),
5062
},
5163
} satisfies Story;
5264

@@ -56,15 +68,21 @@ export const WithTwoCards = {
5668
},
5769
} satisfies Story;
5870

59-
export const WithThreeCards = {
71+
export const WithOneCard = {
6072
args: {
61-
trails: trails.slice(0, 3),
73+
trails: trails.slice(0, 1),
6274
},
6375
} satisfies Story;
6476

65-
export const WithFourCards = {
77+
export const Media = {
78+
name: 'With Media Cards',
6679
args: {
67-
trails: trails.slice(0, 4),
80+
trails: [
81+
audioTrails[0],
82+
videoTrails[0],
83+
galleryTrails[0],
84+
newsletterTrails[0],
85+
],
6886
},
6987
} satisfies Story;
7088

dotcom-rendering/src/components/ScrollableSmall.stories.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ import { breakpoints } from '@guardian/source/foundations';
22
import type { Meta, StoryObj } from '@storybook/react';
33
import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl';
44
import { trails } from '../../fixtures/manual/highlights-trails';
5+
import {
6+
audioTrails,
7+
galleryTrails,
8+
newsletterTrails,
9+
videoTrails,
10+
} from '../../fixtures/manual/trails';
511
import type { DCRContainerPalette } from '../types/front';
612
import { FrontSection } from './FrontSection';
713
import { ScrollableSmall } from './ScrollableSmall.importable';
@@ -66,6 +72,18 @@ export const WithOneCard = {
6672
},
6773
};
6874

75+
export const Media = {
76+
name: 'With Media Cards',
77+
args: {
78+
trails: [
79+
audioTrails[0],
80+
videoTrails[0],
81+
galleryTrails[0],
82+
newsletterTrails[0],
83+
],
84+
},
85+
} satisfies Story;
86+
6987
export const WithPrimaryContainer = {
7088
render: (args) => (
7189
<FrontSection

dotcom-rendering/src/components/StaticMediumFour.stories.tsx

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import { breakpoints } from '@guardian/source/foundations';
22
import type { Meta, StoryObj } from '@storybook/react';
33
import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl';
4-
import { trails } from '../../fixtures/manual/trails';
4+
import {
5+
audioTrails,
6+
galleryTrails,
7+
newsletterTrails,
8+
trails,
9+
videoTrails,
10+
} from '../../fixtures/manual/trails';
511
import type { DCRContainerPalette } from '../types/front';
612
import { FrontSection } from './FrontSection';
713
import { StaticMediumFour } from './StaticMediumFour';
@@ -42,36 +48,45 @@ export default meta;
4248
type Story = StoryObj<typeof meta>;
4349

4450
export const Four = {
45-
name: 'With four cards',
51+
name: 'With Four Cards',
4652
args: {
47-
trails: trails.slice(0, 4).map((trail, index) => ({
48-
...trail,
49-
isNewsletter: index === 3, // Check that we see the Newsletter pill on a card.
50-
})),
53+
trails: trails.slice(0, 4),
5154
},
5255
};
5356

5457
export const Three: Story = {
55-
name: 'With three cards',
58+
name: 'With Three Cards',
5659
args: {
5760
trails: trails.slice(0, 3),
5861
},
5962
};
6063

6164
export const Two: Story = {
62-
name: 'With two cards',
65+
name: 'With Two Cards',
6366
args: {
6467
trails: trails.slice(0, 2),
6568
},
6669
};
6770

6871
export const One: Story = {
69-
name: 'With one card',
72+
name: 'With One Card',
7073
args: {
7174
trails: trails.slice(0, 1),
7275
},
7376
};
7477

78+
export const Media = {
79+
name: 'With Media Cards',
80+
args: {
81+
trails: [
82+
audioTrails[0],
83+
videoTrails[0],
84+
galleryTrails[0],
85+
newsletterTrails[0],
86+
],
87+
},
88+
} satisfies Story;
89+
7590
const containerPalettes = [
7691
'InvestigationPalette',
7792
'LongRunningPalette',

dotcom-rendering/src/frontend/schemas/feArticle.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@
462462
"enum": [
463463
"cryptic",
464464
"everyman",
465+
"mini",
465466
"prize",
466467
"quick",
467468
"quick-cryptic",
@@ -4217,6 +4218,7 @@
42174218
"enum": [
42184219
"cryptic",
42194220
"everyman",
4221+
"mini",
42204222
"prize",
42214223
"quick",
42224224
"quick-cryptic",

dotcom-rendering/src/model/block-schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3706,6 +3706,7 @@
37063706
"enum": [
37073707
"cryptic",
37083708
"everyman",
3709+
"mini",
37093710
"prize",
37103711
"quick",
37113712
"quick-cryptic",

dotcom-rendering/src/model/editions-crossword-schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"enum": [
2626
"cryptic",
2727
"everyman",
28+
"mini",
2829
"prize",
2930
"quick",
3031
"quick-cryptic",

0 commit comments

Comments
 (0)