import React, { useState, useEffect } from 'react'; import { Terminal, ExternalLink, AtSign, Calendar, Binary } from 'lucide-react'; import { HeroProps, QuickLink, AnimationState } from './types'; const defaultIntroText = `> const profile = { name: "Christopher Wylde", alias: "boilerrat", roles: [ "Radiation Protection Specialist", "Web3 Innovator", "DAO Designer" ], expertise: { nuclear: "19+ years in Radiation Protection", web3: "Lead multiple DAOs, $300K+ in grants" } };`; const quickLinks: QuickLink[] = [ { icon: ExternalLink, label: "Full Resume", href: "https://rxresu.me/boilerrat/victorious-present-lungfish", external: true }, { icon: AtSign, label: "Contact", href: "mailto:128boilerrat@gmail.com" }, { icon: Calendar, label: "Schedule a Call", href: "https://calendly.com/boiler-chris/call-with-boilerrat", external: true }, { icon: Binary, label: "DAO Masons", href: "https://www.daomasons.com", external: true } ]; export const Hero: React.FC = ({ className = '', customIntroText }) => { const [animationState, setAnimationState] = useState({ text: '', showContent: false }); const introText = customIntroText || defaultIntroText; useEffect(() => { let currentIndex = 0; const typeWriter = setInterval(() => { if (currentIndex < introText.length) { setAnimationState(prev => ({ ...prev, text: prev.text + introText[currentIndex] })); currentIndex++; } else { clearInterval(typeWriter); setTimeout(() => setAnimationState(prev => ({ ...prev, showContent: true })), 500); } }, 50); return () => clearInterval(typeWriter); }, [introText]); return (
{/* Terminal Window */}
{animationState.text}
{/* Quick Links Section */} {animationState.showContent && (

Bridging Nuclear & Web3

Building the future of decentralized governance while ensuring nuclear safety

{quickLinks.map((link, index) => ( {link.label} ))}
)}
); };