"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()}/月
{city.name}
{city.description}
);
}
export default memo(CityCardComponent);