์ทจ์
์ค๋น, ์ธ๋ฏธ๋ ๋ฐ ์์
, ํ์ฌ ๋ด์ฉ/ํ๋ก์ ํธ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;