Skip to content

Commit 7d54b45

Browse files
authored
fix(bff): handle missing slides in banner (#375)
1 parent 6ac8734 commit 7d54b45

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

libs/blog-bff/banners/api/src/lib/dtos.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ export interface WPBannerDto {
22
id: number;
33
acf: {
44
display_time: string;
5-
slides: {
6-
slide_image: number /* slideId */;
7-
slide_url: string /* url to navigate to after click */;
8-
}[];
5+
slides:
6+
| {
7+
slide_image: number /* slideId */;
8+
slide_url: string /* url to navigate to after click */;
9+
}[]
10+
| null;
911
};
1012
}
1113

libs/blog-bff/banners/api/src/lib/mappers.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ export const toBanner = (
88
): Slider => {
99
return {
1010
slideDisplayTimeMs: +dto.acf.display_time,
11-
slides: dto.acf.slides.map((slide) => {
12-
const media = mediaDto.find((media) => media.id === slide.slide_image)!;
13-
return {
14-
url: media.guid.rendered,
15-
alt: media.alt_text,
16-
navigateTo: slide.slide_url,
17-
};
18-
}),
11+
slides:
12+
dto.acf.slides?.map((slide) => {
13+
const media = mediaDto.find((media) => media.id === slide.slide_image)!;
14+
return {
15+
url: media.guid.rendered,
16+
alt: media.alt_text,
17+
navigateTo: slide.slide_url,
18+
};
19+
}) ?? [],
1920
};
2021
};

0 commit comments

Comments
 (0)