summaryrefslogtreecommitdiff
path: root/src/components/ui/HeroBannerSecondary.jsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-05-22 11:58:05 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-05-22 11:58:05 +0700
commit33da0fcb718335eb1d077af4321ac65e0146a2d6 (patch)
treed87dab8d58c3e148e3e541a88b1ef7d2fd6d0ba7 /src/components/ui/HeroBannerSecondary.jsx
parentc65d7f6b82a7f2f80b1fe43a0bd06144d2ca64ff (diff)
Refactoring hero banner feature
Diffstat (limited to 'src/components/ui/HeroBannerSecondary.jsx')
-rw-r--r--src/components/ui/HeroBannerSecondary.jsx35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/components/ui/HeroBannerSecondary.jsx b/src/components/ui/HeroBannerSecondary.jsx
new file mode 100644
index 00000000..a3227002
--- /dev/null
+++ b/src/components/ui/HeroBannerSecondary.jsx
@@ -0,0 +1,35 @@
+import Link from '@/core/components/elements/Link/Link'
+import { getRandomInt } from '@/utils/getRandomInt'
+import Image from 'next/image'
+import { useMemo } from 'react'
+import { useQuery } from 'react-query'
+import { HeroBannerSkeleton } from '../skeleton/BannerSkeleton'
+import { BannerApi } from '@/api/BannerApi'
+
+const HeroBannerSecondary = () => {
+ const heroBannerSecondary = useQuery('heroBannerSecondary', BannerApi({ type: 'index-a-2' }))
+
+ const randomIndex = useMemo(() => {
+ if (!heroBannerSecondary.data) return null
+ const length = heroBannerSecondary.data?.length
+ return getRandomInt(length)
+ }, [heroBannerSecondary.data])
+
+ if (heroBannerSecondary.isLoading) return <HeroBannerSkeleton />
+
+ return (
+ heroBannerSecondary.data && (
+ <Link href={heroBannerSecondary.data[randomIndex].url} className='h-full'>
+ <Image
+ src={heroBannerSecondary.data[randomIndex].image}
+ width={512}
+ height={1024}
+ alt={heroBannerSecondary.data[randomIndex].name}
+ className='object-cover object-center h-full'
+ />
+ </Link>
+ )
+ )
+}
+
+export default HeroBannerSecondary