import { useEffect, useRef } from "react"; import { Link } from "react-router-dom"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; import SubHero from "../../components/SubHero"; gsap.registerPlugin(ScrollTrigger); const HERO_STATS = [ { num: "2010", label: "설립연도" }, { num: "50+", label: "완료 프로젝트" }, { num: "15+", label: "주요 고객사" }, { num: "10+", label: "R&D 전문인력" }, ]; const heroRight = (
{HERO_STATS.map((s) => (
{s.num} {s.label}
))}
); const COMPANY_NAV = [ { label: "회사소개", to: "/company/about" }, { label: "연혁", to: "/company/history" }, { label: "고객 및 협력사", to: "/company/partners" }, { label: "찾아오시는 길", to: "/company/location" }, ]; const STATS = [ { num: 2010, suffix: "", label: "설립연도", note: "FOUNDED" }, { num: 50, suffix: "+", label: "완료 프로젝트", note: "PROJECTS" }, { num: 15, suffix: "+", label: "주요 고객사", note: "CLIENTS" }, { num: 10, suffix: "+", label: "R&D 전문인력", note: "EXPERTS" }, ]; const VALUES = [ { idx: "01", title: "기술 혁신", en: "Innovation", desc: "항공 데이터와 UTM 기술의 경계를 지속적으로 확장하며 미래 모빌리티 시대를 선도합니다.", img: "/images/img1.jpg" }, { idx: "02", title: "신뢰와 책임", en: "Trust", desc: "공공·항공 분야의 핵심 인프라를 다루는 만큼 모든 서비스에 안전과 신뢰를 최우선으로 합니다.", img: "/images/img2.jpg" }, { idx: "03", title: "파트너십", en: "Partnership", desc: "고객사와 장기 파트너로서 구축부터 운영·유지보수까지 전 과정을 함께합니다.", img: "/images/img3.jpg" }, { idx: "04", title: "전문성", en: "Expertise", desc: "항공 IT 분야 10년 이상의 전문 인력이 SI, R&D, 솔루션 개발을 일관되게 수행합니다.", img: "/images/img4.jpg" }, ]; const AWARDS = [ { year: "2022", title: "인천 항공산업 선도기업 유망기업 선정", org: "인천시 · 인천테크노파크" }, { year: "2021", title: "소프트웨어 품질인증 GS 인증 획득", org: "한국정보통신기술협회(TTA)" }, { year: "2021", title: "기업부설연구소 인정", org: "한국산업기술진흥협회" }, { year: "2020", title: "조달청 우수제품 지정", org: "비행상황관제 시스템" }, ]; function animateCount(el, target, suffix, duration = 1800) { const from = target > 100 ? target - 4 : 0; let start = null; const step = (ts) => { if (!start) start = ts; const p = Math.min((ts - start) / duration, 1); const ease = 1 - Math.pow(1 - p, 4); el.textContent = Math.floor(from + (target - from) * ease) + suffix; if (p < 1) requestAnimationFrame(step); }; requestAnimationFrame(step); } export default function AboutPage() { const statRefs = useRef([]); const statDone = useRef(false); useEffect(() => { const ctx = gsap.context(() => { /* ── 숫자 섹션 카운터 ── */ ScrollTrigger.create({ trigger: ".ab3-stats", start: "top 75%", onEnter: () => { if (statDone.current) return; statDone.current = true; statRefs.current.forEach((el, i) => { if (!el) return; setTimeout(() => animateCount(el, STATS[i].num, STATS[i].suffix), i * 100); }); }, }); /* ── 숫자 카드 스태거 ── */ gsap.fromTo( ".ab3-si", { opacity: 0, y: 50 }, { opacity: 1, y: 0, stagger: 0.12, duration: 0.9, ease: "power3.out", scrollTrigger: { trigger: ".ab3-stats", start: "top 78%" }, }, ); /* ── 철학 섹션 핀 + 텍스트 순차 reveal ── */ gsap.fromTo( ".ab3-phil-line", { opacity: 0, y: 80 }, { opacity: 1, y: 0, stagger: 0.15, duration: 1.1, ease: "power4.out", scrollTrigger: { trigger: ".ab3-phil", start: "top 65%" }, }, ); gsap.fromTo( ".ab3-phil-sub", { opacity: 0, x: 40 }, { opacity: 1, x: 0, duration: 1, ease: "power3.out", scrollTrigger: { trigger: ".ab3-phil", start: "top 55%" }, }, ); /* ── 가치 섹션 라인 애니 ── */ gsap.fromTo( ".ab3-val-row", { opacity: 0, x: -40 }, { opacity: 1, x: 0, stagger: 0.1, duration: 0.8, ease: "power3.out", scrollTrigger: { trigger: ".ab3-vals", start: "top 72%" }, }, ); /* ── 수상 ── */ gsap.fromTo( ".ab3-awd-item", { opacity: 0, y: 30 }, { opacity: 1, y: 0, stagger: 0.1, duration: 0.7, ease: "power2.out", scrollTrigger: { trigger: ".ab3-awds", start: "top 75%" }, }, ); /* ── CTA ── */ gsap.fromTo( ".ab3-cta-inner > *", { opacity: 0, y: 40 }, { opacity: 1, y: 0, stagger: 0.12, duration: 0.9, ease: "power2.out", scrollTrigger: { trigger: ".ab3-cta", start: "top 75%" }, }, ); }); return () => ctx.revert(); }, []); return (
{/* ── STATS ── */}

PAL Networks in Numbers

{STATS.map((s, i) => (
{s.note} (statRefs.current[i] = el)}> {s.num} {s.suffix} {s.label}
))}
{/* ── PHILOSOPHY (영상 배경 + 텍스트) ── */}
{/* ── CORE VALUES ── */}

Core Values

우리가
지키는 가치

{VALUES.map((v) => (
{v.idx} {v.en}

{v.title}

{v.desc}

))}
{/* ── AWARDS ── */}

Certifications & Awards

인증 및 수상

    {AWARDS.map((a, i) => (
  • {a.year}
    {a.title} {a.org}
  • ))}
{/* ── CTA ── */}
Contact Us

팔네트웍스와
함께하세요

파트너십 문의, 채용, 사업 협력 등 무엇이든 편하게 연락주세요.

문의하기 채용 안내
); }