"use client"; import { memo, useState } from "react"; import { City } from "../data/cities"; interface CityCardProps { city: City; rank: number; onClick?: () => void; } function CityCardComponent({ city, rank, onClick }: CityCardProps) { const [hovered, setHovered] = useState(false); return (
e.key === "Enter" && onClick?.()} className="city-card cursor-pointer relative overflow-hidden rounded-xl min-h-[200px]" style={{ background: `linear-gradient(135deg, ${city.gradientFrom}, ${city.gradientTo})`, }} onMouseEnter={() => setHovered(true)} onMouseLeave={() => setHovered(false)} > {city.icon}
{rank} 📡 {city.internetSpeed}Mbps

{city.name}

{city.countryEmoji} {city.country}

👥 {city.nomadsNow} 人在此 🌡 {city.temperature}°C
{city.description} ¥{city.costPerMonth.toLocaleString()}/月
); } export default memo(CityCardComponent);