onMouseEnter와 onMouseLeave를 활용해 마우스가 특정 요소 위에 있을 때만 메뉴가 표시되도록 했음. 하지만, 하위 요소로 마우스가 이동할 때 드롭다운이 사라지는 문제가 발생했음.<li
onMouseEnter={() => setHoveredCategory(largeCategory.name)}
onMouseLeave={() => setHoveredCategory(null)}
className="relative"
>
{largeCategory.name.toUpperCase()}
{hoveredCategory === largeCategory.name && (
<ul className="absolute top-full left-0">
{/* 드롭다운 내용 */}
</ul>
)}
</li>const categories = [
{ name: "women", type: "large" },
{ name: "men", type: "large" },
// 중분류와 소분류도 같은 배열에 존재
];const categories = [
{
name: "women",
type: "large",
subcategories: [
{
name: "의류",
type: "medium",
subcategories: [
{ name: "상의", type: "small" },
{ name: "바지", type: "small" },
],
},
],
},
// 다른 대분류도 유사한 구조로 계층화
];<ul className="grid grid-cols-7 grid-rows-2 gap-3 h-full">
<li className="bg-amber-100 col-span-2 row-span-2">new</li>
<li className="bg-purple-200 col-span-2 row-span-2">popular</li>
<li className="bg-blue-200 col-span-3 row-span-1">interior</li>
<li className="bg-rose-200 col-span-3 row-span-1">beauty</li>
</ul><li className="last:mb-0">
{/* 마지막 자식 요소에만 적용되는 스타일 */}
</li><div className="relative w-40 aspect-w-1 aspect-h-1">
<Image src={product.thumbnailUrls[0]} alt={product.name} fill />
</div><div className="relative w-40 aspect-square">
<Image src={product.thumbnailUrls[0]} alt={product.name} fill />
</div>