'use client'; import React, { useState } from 'react'; import type { ContactItem, FooterContactId } from './IsoTypes'; import IsometricScene from './IsometricScene'; import { MailIcon, PhoneIcon, LinkedInIcon, GitHubIcon, TelegramIcon, } from './IsoElements'; import styles from './IsometricFooter.module.css'; export const contacts: ContactItem[] = [ { id: 'phone', name: 'Phone', label: '09388263077', href: 'tel:09388263077', Icon: PhoneIcon, }, { id: 'linkedin', name: 'LinkedIn', label: '@amiirkhl', href: 'https://linkedin.com/in/amiirkhl', Icon: LinkedInIcon, }, { id: 'github', name: 'GitHub', label: 'git.amiirkhl.ir', href: 'https://git.amiirkhl.ir', Icon: GitHubIcon, }, { id: 'telegram', name: 'Telegram', label: '@amiirkhl', href: 'https://t.me/amiirkhl', Icon: TelegramIcon, }, ]; export default function IsometricFooter() { const [activePost, setActivePost] = useState(null); const handlePostClick = (id: FooterContactId) => { const item = contacts.find((c) => c.id === id); if (item && item.href) { if (item.href.startsWith('tel:')) { window.location.href = item.href; } else { window.open(item.href, '_blank', 'noopener,noreferrer'); } } }; return (
{/* Top Header & Contact Section */}

Let's build something meaningful.

Open to opportunities and interesting projects.

{/* Email Pill Button */}
amirhosseinkhalili901@gmail.com
{/* 3D Isometric SVG Scene */}
{/* Responsive Synchronized Contact Cards Section */}
{contacts.map((contact) => { const IconComponent = contact.Icon; const isHovered = activePost === contact.id; return ( setActivePost(contact.id)} onMouseLeave={() => setActivePost(null)} onClick={() => setActivePost(contact.id)} aria-label={`${contact.name}: ${contact.label}`} >
{contact.name} {contact.label}
); })}
); }