프로젝트1
더보기 기능 패지징 -작성중-
개발하는지호
2024. 4. 15. 10:49
import React, { useState } from 'react';
function CardList({ cardDetails }) {
// 현재 표시할 카드의 최대 수
const [visibleCount, setVisibleCount] = useState(5);
// 더 보기 버튼을 클릭할 때 호출되는 함수
const showMoreCards = () => {
setVisibleCount(prevCount => prevCount + 5); // 현재 보이는 수에 5를 추가
};
return (
<div>
<div className='text-2xl mb-4'>{cardDetails.length}개 <span className='text-lg'>카드 검색결과</span></div>
{cardDetails.slice(0, visibleCount).map((card, index) => (
<div key={index} className='relative h-[250px] w-[370px] mb-[10px] md:h-[280px] md:w-[850px] bg-white rounded-[20px]'>
<h1 className='absolute left-[150px] top-[40px] md:left-[250px] md:top-[50px] font-bold'>{card.card_company}</h1>
<div className="absolute md:left-[30px] gap-[10px] md:gap-[100px] p-4 m-2 flex justify-around top-[50px] md:top-[40px]">
<img src={card.card_img} alt="카드 이미지" className='h-[120px] md:h-[150px] md:pr-0 pr-[40px]' />
<div className='md:flex md:gap-[100px] mt-[15px] md:mt-0'>
<p className='md:mt-[50px] md:mb-0 mb-[10px] '><div></div><div className='flex relative'><span className='hidden md:absolute md:block md:text-[50px] md:font-thin md:text-gray-200 md:top-[-15px] md:left-[-10px]'>|</span><span>제목<br className='hidden md:block ' />{card.card_benefit_title}</span></div></p>
<p className='md:mt-[50px] md:mb-0 mb-[10px] '><div></div><div className='flex relative'><span className='hidden md:absolute md:block md:text-[50px] md:font-thin md:text-gray-200 md:top-[-15px] md:left-[-10px]'>|</span><span>제목<br className='hidden md:block ' />{card.card_benefit_summary}</span></div></p>
</div>
</div>
</div>
))}
{visibleCount < cardDetails.length && (
<button onClick={showMoreCards} className="flex mx-auto my-4 bg-gray-300 hover:bg-brand2 text-white font-bold py-2 px-4 rounded">
더 보기
</button>
)}
</div>
);
}
export default CardList;