// Contact.jsx — thomasgoodman.me const contactLinks = [ { icon: ( ), label: "Email", value: "tommy@tommytinkers.nz", href: "mailto:tommy@tommytinkers.nz", }, { icon: ( ), label: "LinkedIn", value: "linkedin.com/in/tgnz", href: "https://linkedin.com/in/tgnz", }, { icon: ( ), label: "GitHub", value: "github.com/tonkatommy", href: "https://github.com/tonkatommy", }, { icon: ( ), label: "Location", value: "Helensville, Auckland, New Zealand", href: null, }, ]; const Contact = () => ( {/* Header */} Get in Touch Open to junior to intermediate full-stack developer roles. Remote first, hybrid OK, on-site if necessary. {/* Resume CTA prominent block */} Download my resume Full work history, references on request. { e.currentTarget.style.background = "var(--color-accent-hover)"; e.currentTarget.style.boxShadow = "var(--shadow-glow)"; }} onMouseLeave={(e) => { e.currentTarget.style.background = "var(--color-accent)"; e.currentTarget.style.boxShadow = "none"; }} > View Resume {/* Contact links */} {contactLinks.map((l) => ( {l.icon} {l.label} {l.href ? ( (e.currentTarget.style.color = "var(--color-accent-hover)")} onMouseLeave={(e) => (e.currentTarget.style.color = "var(--color-accent)")} > {l.value} ) : ( {l.value} )} ))} {/* Footer */} thomasgoodman.me Built with Next.js, Tailwind, MUI ); Object.assign(window, { Contact });
Open to junior to intermediate full-stack developer roles. Remote first, hybrid OK, on-site if necessary.