1- import { useEffect , useState } from 'react'
1+ import { useEffect } from 'react'
22import { AdPlaceholder } from 'src/components/placeholders'
3+ import { useRemoteConfigStore } from 'src/features/remoteConfig'
34import { useUserPreferences } from 'src/stores/preferences'
45import { useGetAd } from '../api/getAd'
6+ import { useDelayedFlag } from '../hooks/useDelayedFlag'
57import { Ad } from '../types'
68import './AdvBanner.css'
79
@@ -13,10 +15,9 @@ type AdvBannerProps = {
1315
1416export const AdvBanner = ( { feedDisplay = false , loadingState, onAdLoaded } : AdvBannerProps ) => {
1517 const { userSelectedTags } = useUserPreferences ( )
18+ const adsFetchDelayMs = useRemoteConfigStore ( ( s ) => s . adsFetchDelayMs )
19+ const isReady = useDelayedFlag ( adsFetchDelayMs )
1620
17- const [ aditionalAdQueries , setAditionalAdQueries ] = useState <
18- { [ key : string ] : string } | undefined
19- > ( )
2021 const {
2122 isSuccess,
2223 data : ad ,
@@ -25,18 +26,11 @@ export const AdvBanner = ({ feedDisplay = false, loadingState, onAdLoaded }: Adv
2526 } = useGetAd ( {
2627 keywords : userSelectedTags . map ( ( tag ) => tag . label . toLocaleLowerCase ( ) ) ,
2728 feed : true ,
28- aditionalAdQueries : aditionalAdQueries ,
2929 config : {
3030 cacheTime : 0 ,
3131 staleTime : 0 ,
32+ enabled : isReady ,
3233 useErrorBoundary : false ,
33- refetchInterval ( data ) {
34- if ( data ?. nextAd ) {
35- setAditionalAdQueries ( data . nextAd . queries )
36- return data . nextAd . interval
37- }
38- return false
39- } ,
4034 } ,
4135 } )
4236
0 commit comments