mediahub-fe/components/landing-page/content-category.tsx

43 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-12-09 16:09:42 +00:00
import { getCategoryData } from "@/service/landing/landing";
2024-12-04 14:12:10 +00:00
import Link from "next/link";
2024-12-09 16:09:42 +00:00
import React, { useEffect, useState } from "react";
2024-12-04 14:12:10 +00:00
const ContentCategory = () => {
2024-12-09 16:09:42 +00:00
const [categories, setCategories] = useState<any>();
useEffect(() => {
initFetch();
}, []);
const initFetch = async () => {
const response = await getCategoryData();
console.log("category", response);
2024-12-09 16:09:42 +00:00
setCategories(response?.data?.data?.content);
};
2024-12-04 14:12:10 +00:00
return (
<div className="mx-auto px-4 lg:px-12 py-10 max-w-screen-xl ">
<h2 className="text-center text-xl lg:text-2xl font-bold text-[#bb3523] mb-4">
Kategori <span className="text-black dark:text-white">Konten</span>
</h2>
<div className="h-1 w-48 bg-[#bb3523] mx-auto mb-6 rounded"></div>
<div className="grid my-3 grid-cols-2 lg:grid-cols-4 gap-4">
2024-12-09 16:09:42 +00:00
{categories?.map((category: any) => (
<Link key={category?.id} href={`all/filter?category=${category?.id}`} className="relative group rounded-md overflow-hidden shadow-md hover:shadow-lg">
<img src={category?.thumbnailLink} className="w-full h-48 sm:h-40 object-cover group-hover:scale-110 transition-transform duration-300" />
2024-12-04 14:12:10 +00:00
<div className="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent text-white p-2">
2024-12-09 16:09:42 +00:00
<h3 className="text-sm font-semibold truncate">{category?.name}</h3>
2024-12-04 14:12:10 +00:00
</div>
</Link>
))}
</div>
<div className="flex items-center flex-row justify-center">
<Link href="#" className="border text-[#bb3523] text-sm lg:text-md px-4 py-1 gap-3 border-[#bb3523]">
LIHAT SEMUA
</Link>
</div>
2024-12-04 14:12:10 +00:00
</div>
);
};
export default ContentCategory;