summaryrefslogtreecommitdiff
path: root/src-migrate/modules/side-banner
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2024-07-10 15:58:51 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2024-07-10 15:58:51 +0700
commit2e3c726bc8217f3960cfecec44b81303b03de72b (patch)
tree1b85ced7f61f3e4c3f1f27b577b37aa161615065 /src-migrate/modules/side-banner
parent2b3bd9c0a454dbad69ce29cee877bfb1fca5dfa6 (diff)
parenta99bf6480eea556e53b85e6db45f3b8c2361e693 (diff)
Merge branch 'release' into development
# Conflicts: # src/pages/shop/product/variant/[slug].jsx
Diffstat (limited to 'src-migrate/modules/side-banner')
-rw-r--r--src-migrate/modules/side-banner/index.tsx30
1 files changed, 30 insertions, 0 deletions
diff --git a/src-migrate/modules/side-banner/index.tsx b/src-migrate/modules/side-banner/index.tsx
new file mode 100644
index 00000000..6214edfb
--- /dev/null
+++ b/src-migrate/modules/side-banner/index.tsx
@@ -0,0 +1,30 @@
+import React, { useMemo } from "react";
+import Link from "next/link";
+import { useQuery } from "react-query";
+import Image from "~/components/ui/image";
+import { getBanner } from "~/services/banner";
+import { getRandomInt } from '@/utils/getRandomInt';
+
+const SideBanner = () => {
+ const fetchSideBanner = useQuery({
+ queryKey: 'sideBanner',
+ queryFn: () => getBanner({ type: 'side-banner-search' })
+ });
+ // ubah dari static menjadid dynamic dengan menggunakan random index
+ const length = useMemo(() => fetchSideBanner.data?.length, [fetchSideBanner.data]);
+ const randomIndex = useMemo(() => getRandomInt(length), [length]);
+ const banner = fetchSideBanner?.data?.[randomIndex] || false;
+
+ return banner && (
+ <>
+ {banner.url ? (
+ <Link href={banner.url}>
+ <Image src={banner.image} alt={banner.name} width={315} height={450} className='object-cover object-center rounded-lg' />
+ </Link>
+ ) : (
+ <Image src={banner.image} alt={banner.name} width={315} height={450} className='object-cover object-center rounded-lg' />
+ )}
+ </>
+ );
+}
+export default SideBanner;