"use client"; import React, { useState } from 'react'; import Image from "next/image"; import CreditCardApplyModal from '@/components/customui/CreditCardApplyModal'; interface Feature { id: number; details: string; } interface Offer { id: number; details: string; } interface CreditCard { id: number; name: string; bankname: string; minSalary: number; annualFee: string; image: string; features: Feature[]; offers: Offer[]; } const Card: React.FC<{ card: CreditCard }> = ({ card }) => { const [isModalOpen, setIsModalOpen] = useState(false); const [selectedCard, setSelectedCard] = useState(null); const openApplyModal = async (cardId: number) => { try { const res = await fetch(`/api/applycard/${cardId}`); if (!res.ok) throw new Error('Failed to fetch card details'); const fullCard = await res.json(); setSelectedCard(fullCard); setIsModalOpen(true); } catch (err) { alert(`Error loading card details: ${err}`); } }; return (
{/* Left Column: Image */}
{card.name
{/* Right Column: Details */}
{/* Bank Name & Card Name - full width on mobile, flexible on larger screens */}

{card.bankname}

{card.name}

{/* Minimum Salary */}
Minimum Salary (AED): {card.minSalary}
{/* Annual Fee */}
Annual Fee {card.annualFee}
{/* Horizontal line */}
{/* Offers + Buttons Row */} {card.offers && card.offers.length > 0 && (
{/* Offers Section */}
🎁 Offers
    {card.offers.map((offer) => (
  • {offer.details}
  • ))}
{/* Buttons Section */}
Know More
)} {/* Features Section */} {card.features && card.features.length > 0 && (
✨ Features: {card.features.map((feature) => (
{feature.details}
))}
)} {/* Reusable Modal */} {selectedCard && ( setIsModalOpen(false)} card={{ id: selectedCard.id, name: selectedCard.name, bankname: selectedCard.name, // fallback or update if available minSalary: selectedCard.minSalary, annualFee: selectedCard.annualFee, image: selectedCard.image, features: selectedCard.features, offers: selectedCard.offers, }} //returnUrl="/cards" /> )}
); }; export default Card;