summaryrefslogtreecommitdiff
path: root/src-migrate/modules/footer-banner/index.tsx
blob: 86321815f61faa63a5c6e9702018266501d6713b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import Link from "next/link"
import React, { useMemo } from "react";
import { useQuery } from "react-query"
import Image from "~/components/ui/image"
import { getBanner } from "~/services/banner"
import { getRandomInt } from '@/utils/getRandomInt'

const FooterBanner = () => {
  const fetchFooterBanner = useQuery({
    queryKey: 'footerBanner',
    queryFn: () => getBanner({ type: 'bottom-search-promotion' })
  })

  const length = useMemo(() => fetchFooterBanner.data?.length, [fetchFooterBanner.data]);
  const randomIndex = useMemo(() => getRandomInt(length), [length]);
  const banner = fetchFooterBanner?.data?.[randomIndex] || false;

  return banner && (
    <>
      {banner.url && (
        <Link href={banner.url}>
          <Image src={banner.image} alt={banner.name} width={924} height={150} className='object-cover object-center rounded-lg' />
        </Link>
      )}

      {!banner.url && (
        <Image src={banner.image} alt={banner.name} width={924} height={150} className='object-cover object-center rounded-lg' />
      )}
    </>
  )
}
export default FooterBanner