import { useEffect, useRef } from 'react'; import { XIcon } from 'lucide-react'; import { useRecoilState } from 'recoil'; import { useGetBannerQuery } from '~/data-provider'; import store from '~/store'; export const Banner = ({ onHeightChange }: { onHeightChange?: (height: number) => void }) => { const { data: banner } = useGetBannerQuery(); const [hideBannerHint, setHideBannerHint] = useRecoilState(store.hideBannerHint); const bannerRef = useRef(null); useEffect(() => { if (onHeightChange && bannerRef.current) { onHeightChange(bannerRef.current.offsetHeight); } }, [banner, hideBannerHint, onHeightChange]); if (!banner || (banner.bannerId && hideBannerHint.includes(banner.bannerId))) { return null; } const onClick = () => { setHideBannerHint([...hideBannerHint, banner.bannerId]); if (onHeightChange) { onHeightChange(0); // Reset height when banner is closed } }; return (
); };