"use client"; import { useState } from "react"; import { MoreSection, PROFILE } from "@/data/content"; import { useStaggerReveal, useWiggle } from "@/hooks/useAnimations"; import "@/styles/more-section.css" export default function ProfileMore() { const [delayTimer, setDelayTimer] = useState(null); const [hovered, setHovered] = useState(null); const [morePosition, setMorePosition] = useState(PROFILE.moreSectionsStart ?? 0); const { wiggling, progress, handlers } = useWiggle(500, () => {}); function handleSectionExpand(){ setMorePosition(morePosition + 1); } function handleEnter(){ if (delayTimer) return; setHovered(true); let timer = window.setTimeout(() => { handleSectionExpand(); }, 500); setDelayTimer(timer); } function handleLeave() { if (delayTimer){ clearTimeout(delayTimer); setDelayTimer(null); } setHovered(false); } return (
{PROFILE.moreSections.map((item: MoreSection, i)=>{ return (
{item.title && (

{item.title}

)}

{item.text}

); })}
handleEnter() } onMouseLeave={() => handleLeave()} onTouchStart={ () => handleEnter() } onTouchEnd={()=>handleLeave()} onClick={() => { if (delayTimer){ clearTimeout(delayTimer); } handleSectionExpand(); }} style={{ opacity: morePosition < PROFILE.moreSections.length ? 1.0 : 0.0, backgroundColor: hovered ? "var(--surface)" : "var(--bg-raised", width: "100%", height: "2em", display: "flex", gap: 12, margin: "0 0 40px 0", border: `1px solid ${hovered ? "var(--accent)" : "var(--border)"}`, bottom: hovered ? "-10px" : "0px", position: "relative", }}> more?
); }