diff --git a/cli/src/chat.tsx b/cli/src/chat.tsx index ba35cda9ee..b24f19c981 100644 --- a/cli/src/chat.tsx +++ b/cli/src/chat.tsx @@ -174,7 +174,7 @@ export const Chat = ({ }) const hasSubscription = subscriptionData?.hasSubscription ?? false - const { ads, recordImpression } = useGravityAd({ + const { ads, recordClick, recordImpression } = useGravityAd({ enabled: IS_FREEBUFF || !hasSubscription, provider: 'gravity', fallbackProvider: 'zeroclick', @@ -1464,7 +1464,11 @@ export const Chat = ({ )} {ads && (IS_FREEBUFF || getAdsEnabled()) && ( - + )} {reviewMode ? ( diff --git a/cli/src/components/choice-ad-banner.tsx b/cli/src/components/choice-ad-banner.tsx index 1ed8586323..ccacbe53b5 100644 --- a/cli/src/components/choice-ad-banner.tsx +++ b/cli/src/components/choice-ad-banner.tsx @@ -11,6 +11,7 @@ import type { AdResponse } from '../hooks/use-gravity-ad' interface ChoiceAdBannerProps { ads: AdResponse[] + onClick?: (ad: AdResponse) => void onImpression?: (ad: AdResponse) => void } @@ -61,7 +62,11 @@ function columnWidths(count: number, availableWidth: number): number[] { return Array.from({ length: count }, (_, i) => base + (i < remainder ? 1 : 0)) } -export const ChoiceAdBanner: React.FC = ({ ads, onImpression }) => { +export const ChoiceAdBanner: React.FC = ({ + ads, + onClick, + onImpression, +}) => { const theme = useTheme() const { terminalWidth } = useTerminalDimensions() const [hoveredIndex, setHoveredIndex] = useState(null) @@ -115,7 +120,9 @@ export const ChoiceAdBanner: React.FC = ({ ads, onImpressio