// CTA — 오렌지 배경, 좌측 카피 + 우측 폼 카드
const CTA = ({ formRef }) => {
return (
{/* 배경 텍스처 */}
한 달 먼저
겪어보고
결정하세요.
대행 수수료 첫 달은 100% 무료입니다.
싱크온이 맞는 파트너인지, 직접 겪어보고 판단하세요.
);
};
const Bullet = ({ text }) =>
;
const ContactCard = () => {
const [form, setForm] = React.useState({ name: '', brand: '', phone: '', revenue: '', adspend: '', message: '' });
const [submitted, setSubmitted] = React.useState(false);
const onChange = (k) => (e) => setForm({ ...form, [k]: e.target.value });
const onSubmit = async (e) => {
e.preventDefault();
// 중복 제거용 고유 ID
const event_id = 'lead_' + Date.now() + '_' + Math.random().toString(36).slice(2, 8);
// Meta 픽셀 쿠키
const getCookie = (name) => {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
return match ? match[2] : null;
};
const fbp = getCookie('_fbp');
const fbc = getCookie('_fbc');
// 브라우저 이벤트
if (typeof fbq !== 'undefined') {
fbq('track', 'Lead', {}, { eventID: event_id });
}
// 서버 사이드 이벤트 (CAPI)
try {
await fetch('/capi_send.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
event_id, user_name: form.name, user_phone: form.phone, fbp, fbc
})
});
} catch (err) {
console.error('CAPI 전송 오류:', err);
}
// 이메일 전송
try {
await fetch('https://api.web3forms.com/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
body: JSON.stringify({
access_key: '085fa558-7912-4b0f-b468-87d94695ef9e',
subject: '[싱크온] 새로운 무료 상담 신청이 도착했습니다',
from_name: '싱크온 홈페이지',
이름: form.name,
브랜드: form.brand,
연락처: form.phone,
연간매출: form.revenue,
연간마케팅비: form.adspend,
추가문의: form.message
})
});
} catch (err) {
console.error('Web3Forms 전송 오류:', err);
}
setSubmitted(true);
setTimeout(() => setSubmitted(false), 3000);
};
const fieldBase = {
width: '100%',
border: '1.5px solid var(--line-200)',
borderRadius: '0.625rem',
padding: '1rem 1.125rem',
fontSize: '0.9375rem',
fontFamily: 'var(--font-sans)',
background: '#fff',
color: 'var(--navy-800)',
transition: 'border-color .15s ease, box-shadow .15s ease',
outline: 'none'
};
return (
);
};
const FormRow = ({ label, children }) =>
;
window.CTA = CTA;