import { useEffect, useRef } from "react";
import gsap from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import { motion } from "framer-motion";
import { Link } from "react-router-dom";
import SubHero from "../../components/SubHero";
import useFadeIn from "../../hooks/useFadeIn";
gsap.registerPlugin(ScrollTrigger);
const COMPANY_NAV = [
{ label: "회사소개", to: "/company/about" },
{ label: "인증 및 특허현황", to: "/company/cert" },
{ label: "연혁", to: "/company/history" },
{ label: "고객 및 협력사", to: "/company/partners" },
{ label: "찾아오시는 길", to: "/company/location" },
];
const CLIENTS = [
{ id: "airport", logo: "01" },
{ id: "kac", logo: "09" },
{ id: "mod", logo: "15" },
{ id: "incheon", logo: "16" },
{ id: "jeju", logo: "20" },
{ id: "kiast", logo: "21" },
{ id: "kari", logo: "23" },
{ id: "molit", logo: "24" },
];
const PARTNERS = [
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"10",
"11",
"12",
"13",
"14",
"18",
"19",
"22",
];
function LogoCard({ logo, basePath }) {
return (
);
}
export default function PartnersPage() {
const ref = useFadeIn();
const wrapRef = useRef(null);
const basePath = import.meta.env.BASE_URL;
useEffect(() => {
const ctx = gsap.context(() => {
// 모든 섹션 요소 — 아래에서 위로
gsap.utils
.toArray([
".partners-section-row",
".partners-sidebar",
".partners-grid",
".sub-fade-in",
])
.forEach((el) => {
gsap.fromTo(
el,
{ opacity: 0, y: 48 },
{
opacity: 1,
y: 0,
duration: 0.7,
ease: "power3.out",
scrollTrigger: {
trigger: el,
start: "top 88%",
},
},
);
});
// 로고 셀 stagger (기존 유지)
gsap.fromTo(
".partners-logo-cell",
{ opacity: 0, y: 16 },
{
opacity: 1,
y: 0,
duration: 0.5,
stagger: { each: 0.03, from: "start" },
ease: "power3.out",
scrollTrigger: {
trigger: ".partners-wrap",
start: "top 80%",
},
},
);
}, wrapRef);
return () => ctx.revert();
}, []);
return (
{/* 함께하는
*/}
Partners
>
}
// desc="공공·항공·국방 분야 주요 기관과의 신뢰를 바탕으로 성장해왔습니다."
navItems={COMPANY_NAV}
/>
{/* 상단 타이틀 */}
Trusted by Many,
Built for the Future
오랜 신뢰, 깊은 협력 함께하는 기관과 파트너
{/*
*/}
{/* 주요 고객사 */}
Clients
주요
고객사
{CLIENTS.length}개사
{CLIENTS.map((c) => (
))}
{/* 기술 협력사 */}
Partners
기술
협력사
{PARTNERS.length}개사
{PARTNERS.map((num) => (
))}
{/* CTA */}
Become a Partner
팔네트웍스와 함께 성장할
파트너를 찾습니다
협력 문의하기
);
}