1- import { css } from '@emotion/react' ;
21import { isNonNullable , isObject } from '@guardian/libs' ;
32import { useEffect , useState } from 'react' ;
43import { decideFormat } from '../lib/articleFormat' ;
@@ -12,7 +11,6 @@ import { MoreGalleries } from './MoreGalleries';
1211import { Placeholder } from './Placeholder' ;
1312
1413type Props = {
15- limit : number ; // Limit the number of items shown (the api often returns more)
1614 discussionApiUrl : string ;
1715 absoluteServerTimes : boolean ;
1816 isAdFreeUser : boolean ;
@@ -25,10 +23,6 @@ type MoreGalleriesResponse = {
2523 trails : FETrailType [ ] ;
2624} ;
2725
28- const minHeight = css `
29- min-height : 300px ;
30- ` ;
31-
3226const getMedia = ( galleryCount ?: number ) : MainMedia | undefined => {
3327 if ( typeof galleryCount === 'number' ) {
3428 return { type : 'Gallery' , count : galleryCount . toString ( ) } ;
@@ -91,7 +85,6 @@ const fetchJson = async (ajaxUrl: string): Promise<MoreGalleriesResponse> => {
9185} ;
9286
9387export const FetchMoreGalleriesData = ( {
94- limit,
9588 discussionApiUrl,
9689 absoluteServerTimes,
9790 isAdFreeUser,
@@ -117,10 +110,19 @@ export const FetchMoreGalleriesData = ({
117110 } ) ;
118111 } , [ ajaxUrl ] ) ;
119112
113+ useEffect ( ( ) => {
114+ if ( ! data ) return ;
115+ addDiscussionIds (
116+ data . trails
117+ . map ( ( trail ) => trail . discussion ?. discussionId )
118+ . filter ( isNonNullable ) ,
119+ ) ;
120+ } , [ data ] ) ;
121+
120122 if ( error ) {
121123 // Send the error to Sentry and then prevent the element from rendering
122124 window . guardian . modules . sentry . reportError ( error , 'more-galleries' ) ;
123- return undefined ;
125+ return null ;
124126 }
125127
126128 if ( ! data ?. trails ) {
@@ -147,25 +149,12 @@ export const FetchMoreGalleriesData = ({
147149 ) ;
148150 }
149151
150- addDiscussionIds (
151- data . trails
152- . map ( ( trail ) => trail . discussion ?. discussionId )
153- . filter ( isNonNullable ) ,
154- ) ;
155-
156152 return (
157- < div
158- css = { {
159- backgroundColor : palette ( '--onward-background' ) ,
160- minHeight : 300 ,
161- } }
162- >
163- < MoreGalleries
164- absoluteServerTimes = { absoluteServerTimes }
165- trails = { buildTrails ( data . trails , limit , isAdFreeUser ) }
166- discussionApiUrl = { discussionApiUrl }
167- guardianBaseUrl = { guardianBaseUrl }
168- />
169- </ div >
153+ < MoreGalleries
154+ absoluteServerTimes = { absoluteServerTimes }
155+ trails = { buildTrails ( data . trails , 5 , isAdFreeUser ) }
156+ discussionApiUrl = { discussionApiUrl }
157+ guardianBaseUrl = { guardianBaseUrl }
158+ />
170159 ) ;
171160} ;
0 commit comments