/* global React */ const { useState: useStateHero, useEffect: useEffectHero, useRef: useRefHero } = React; const HERO_SLIDES = [ { tag: "인기 차종 즉시 출고", title: "내가 타고 싶던 차,\n가격이 궁금하다면?", lede: "인기 모델 월 리스료를 1분 안에 확인하세요. 견적 신청 후 30분 내 전담 컨설턴트가 연락드립니다." }, { tag: "이달의 특가 · 최대 12% 할인", title: "이달의 특가 모델\n월 29만원부터 시작", lede: "SUV·세단·전기차 전 차급에서 특가 혜택이 준비됐습니다. 지금 신청하면 출고 보증금 면제." }, { tag: "무심사 장기렌트", title: "신용에 상관없이,\n내 명의로 바로 출고", lede: "프리랜서·사업자·신불자도 OK. 재직증명 없이 간편 서류만으로 원하는 차량 이용이 가능합니다." }, ]; function QuoteForm() { const [form, setForm] = useStateHero({ name: "", phone: "", model: "" }); const [err, setErr] = useStateHero({}); const [agree, setAgree] = useStateHero([true, true, true, false]); const [toast, setToast] = useStateHero(false); const toggle = (i) => setAgree(prev => prev.map((v, idx) => idx === i ? !v : v)); const allOn = agree[0] && agree[1] && agree[2]; const toggleAll = () => { const next = !allOn; setAgree(prev => prev.map((_, i) => i === 3 ? prev[3] : next)); }; const onPhone = (v) => { const d = v.replace(/\D/g, '').slice(0, 11); let out = d; if (d.length > 3 && d.length <= 7) out = `${d.slice(0,3)}-${d.slice(3)}`; else if (d.length > 7) out = `${d.slice(0,3)}-${d.slice(3,7)}-${d.slice(7)}`; setForm(f => ({ ...f, phone: out })); }; const submit = (e) => { e.preventDefault(); const next = {}; if (!form.name.trim() || form.name.trim().length < 2) next.name = "이름을 2글자 이상 입력해 주세요"; const digits = form.phone.replace(/\D/g, ''); if (digits.length < 10 || !digits.startsWith('01')) next.phone = "올바른 휴대폰 번호를 입력해 주세요"; if (!allOn) next.agree = "필수 약관에 모두 동의해 주세요"; setErr(next); if (Object.keys(next).length === 0) { setToast(true); setTimeout(() => setToast(false), 2800); setForm({ name: "", phone: "", model: "" }); } }; return ( <>

내가 타고싶던 차,
가격이 궁금하다면?

setForm(f => ({ ...f, name: e.target.value }))} placeholder="성함 또는 회사명을 입력해 주세요." autoComplete="name" /> {err.name &&
{err.name}
}
onPhone(e.target.value)} placeholder='연락처를 "-" 없이 입력해 주세요.' inputMode="numeric" /> {err.phone &&
{err.phone}
}
setForm(f => ({ ...f, model: e.target.value }))} placeholder="희망하는 차종을 입력해 주세요." />
약관을 모두 동의합니다 (필수 및 선택 항목 모두 포함)
{[ ["[필수] 개인정보 수집 및 이용동의", 0], ["[필수] 개인정보 제3자 제공 동의", 1], ["[필수] 마케팅 활용 및 서비스 운영 정보 수신 동의", 2], ["[선택] 마케팅 활용 및 서비스 운영 정보 수신 동의", 3], ].map(([label, i]) => (
{label}
))}
{err.agree &&
{err.agree}
}
신청 후 30분 내 무료 상담 전화 도착
견적 신청이 접수되었습니다!
); } function Hero() { const [slide, setSlide] = useStateHero(0); const timer = useRefHero(null); useEffectHero(() => { timer.current = setInterval(() => setSlide(s => (s + 1) % HERO_SLIDES.length), 6500); return () => clearInterval(timer.current); }, []); const s = HERO_SLIDES[slide]; const go = (d) => { clearInterval(timer.current); setSlide((slide + d + HERO_SLIDES.length) % HERO_SLIDES.length); timer.current = setInterval(() => setSlide(s => (s + 1) % HERO_SLIDES.length), 6500); }; return (
{s.tag}
실시간 상담 가능 선수금 0원부터 최단 3일 출고

{s.title.split('\n').map((line, i) => ( {line}{i < s.title.split('\n').length - 1 &&
}
))}

{s.lede}

12,480+누적 계약 대수
4.92/5.0고객 만족도
30평균 상담 응답
{HERO_SLIDES.map((_, i) => (
); } window.Hero = Hero;