11import { useEffect } from 'react'
22import { AdPlaceholder } from 'src/components/placeholders'
3- import { useRemoteConfigStore } from 'src/features/remoteConfig '
3+ import { trackMarketingCampaignOpen } from 'src/lib/analytics '
44import { useUserPreferences } from 'src/stores/preferences'
5- import { isWebOrExtensionVersion } from 'src/utils/Environment'
65import { useGetAd } from '../api/getAd'
7- import { useDelayedFlag } from '../hooks/useDelayedFlag'
86import { Ad } from '../types'
97import './AdvBanner.css'
108
@@ -14,12 +12,8 @@ type AdvBannerProps = {
1412 loadingState ?: React . ReactNode
1513}
1614
17- export const AdvBanner = ( { feedDisplay = false , loadingState, onAdLoaded } : AdvBannerProps ) => {
15+ export const AdvBanner = ( { loadingState, onAdLoaded } : AdvBannerProps ) => {
1816 const { userSelectedTags } = useUserPreferences ( )
19- const adsFetchDelayMs = useRemoteConfigStore ( ( s ) => s . adsFetchDelayMs )
20- const delay = isWebOrExtensionVersion ( ) === 'extension' ? adsFetchDelayMs : undefined
21- const isReady = useDelayedFlag ( delay )
22-
2317 const {
2418 isSuccess,
2519 data : ad ,
@@ -31,7 +25,6 @@ export const AdvBanner = ({ feedDisplay = false, loadingState, onAdLoaded }: Adv
3125 config : {
3226 cacheTime : 0 ,
3327 staleTime : 0 ,
34- enabled : isReady ,
3528 useErrorBoundary : false ,
3629 } ,
3730 } )
@@ -50,85 +43,22 @@ export const AdvBanner = ({ feedDisplay = false, loadingState, onAdLoaded }: Adv
5043 return null
5144 }
5245
53- if ( ad . largeImage ) {
46+ const onAdClick = ( ) => {
47+ if ( ad ?. id ) {
48+ trackMarketingCampaignOpen ( ad . id , {
49+ source : 'card' ,
50+ } )
51+ }
52+ }
53+ if ( ad . type === 'house-ad-banner' ) {
5454 return (
55- < >
56- < div
57- className = "carbonCoverTarget"
58- style = {
59- {
60- '--ad-dynamic-bg-image' : `url(${ ad . largeImage } )` ,
61- '--ad-gradient-color' : ad . backgroundColor ,
62- } as React . CSSProperties
63- } >
64- < a href = { ad . link } className = "carbonCover" >
65- < img className = "carbonCoverImage" src = { ad . largeImage } />
66- < div className = "carbonCoverMain" >
67- < img className = "carbonCoverLogo" src = { ad . logo } />
68- < div className = "carbonCoverTagline" > { ad . companyTagline } </ div >
69- < div className = "carbonCoverDescription" > { ad . description } </ div >
70- < div className = "carbonCoverButton" > { ad . callToAction + ' ↗' } </ div >
71- </ div >
72- </ a >
73- </ div >
74- { ad . viewUrl &&
75- ad . viewUrl
76- . split ( '||' )
77- . map ( ( viewUrl , i ) => (
78- < img
79- key = { i }
80- src = { viewUrl . replace ( '[timestamp]' , `${ Math . round ( Date . now ( ) / 10000 ) | 0 } ` ) }
81- className = "hidden"
82- alt = ""
83- />
84- ) ) }
85- </ >
55+ < div className = "houseBanner" >
56+ < a onClick = { onAdClick } href = { ad . link } target = "_blank" title = { ad . title } >
57+ < img src = { ad . imageUrl } alt = { ad . title } />
58+ </ a >
59+ </ div >
8660 )
8761 }
8862
89- return (
90- < >
91- < div className = "banneradv" >
92- < a
93- href = { ad . link }
94- className = "img"
95- target = "_blank"
96- rel = "noopener sponsored noreferrer"
97- title = { ad . title } >
98- < img
99- src = { ad . imageUrl }
100- alt = { ad . title }
101- height = { ! feedDisplay ? '120' : '200' }
102- width = { ! feedDisplay ? '156' : '260' }
103- style = { { border : 0 } }
104- />
105- </ a >
106-
107- < a href = { ad . link } className = "text" target = "_blank" rel = "noopener sponsored noreferrer" >
108- { ad . description }
109- </ a >
110-
111- { ! feedDisplay && (
112- < a
113- href = { ad . provider . link }
114- className = "poweredby"
115- target = "_blank"
116- rel = "noopener sponsored noreferrer" >
117- { ad . provider . title }
118- </ a >
119- ) }
120- </ div >
121- { ad . viewUrl &&
122- ad . viewUrl
123- . split ( '||' )
124- . map ( ( viewUrl , i ) => (
125- < img
126- key = { i }
127- src = { viewUrl . replace ( '[timestamp]' , `${ Math . round ( Date . now ( ) / 10000 ) | 0 } ` ) }
128- className = "hidden"
129- alt = ""
130- />
131- ) ) }
132- </ >
133- )
63+ return null
13464}
0 commit comments