@@ -275,6 +275,8 @@ export const StickyBottomBanner = ({
275275 ) ;
276276
277277 const [ SelectedBanner , setSelectedBanner ] = useState < MaybeFC | null > ( null ) ;
278+ const [ hasPickMessageCompleted , setHasPickMessageCompleted ] =
279+ useState < boolean > ( false ) ;
278280 const [ asyncArticleCounts , setAsyncArticleCounts ] =
279281 useState < Promise < ArticleCounts | undefined > > ( ) ;
280282
@@ -365,9 +367,10 @@ export const StickyBottomBanner = ({
365367 } ;
366368
367369 pickMessage ( bannerConfig , renderingTarget )
368- . then ( ( PickedBanner : ( ) => MaybeFC ) =>
369- setSelectedBanner ( PickedBanner ) ,
370- )
370+ . then ( ( PickedBanner : ( ) => MaybeFC ) => {
371+ setSelectedBanner ( PickedBanner ) ;
372+ setHasPickMessageCompleted ( true ) ;
373+ } )
371374 . catch ( ( e ) => {
372375 // Report error to Sentry
373376 const msg = `StickyBottomBanner pickMessage - error: ${ String (
@@ -377,6 +380,7 @@ export const StickyBottomBanner = ({
377380 new Error ( msg ) ,
378381 'sticky-bottom-banner' ,
379382 ) ;
383+ setHasPickMessageCompleted ( true ) ;
380384 } ) ;
381385 } , [
382386 isSignedIn ,
@@ -403,14 +407,14 @@ export const StickyBottomBanner = ({
403407 ] ) ;
404408
405409 useEffect ( ( ) => {
406- if ( SelectedBanner == null ) {
410+ if ( hasPickMessageCompleted && SelectedBanner == null ) {
407411 document . dispatchEvent (
408412 new CustomEvent ( 'banner:none' , {
409413 detail : { readerRevenue : false } ,
410414 } ) ,
411415 ) ;
412416 }
413- } , [ SelectedBanner ] ) ;
417+ } , [ SelectedBanner , hasPickMessageCompleted ] ) ;
414418 if ( SelectedBanner ) {
415419 return < SelectedBanner /> ;
416420 }
0 commit comments