feat: 진단 요청 버튼을 문의 폼으로 연결하고 샘플 리포트 버튼을 뺀다

- "URL 입력으로 시작하기" → "AEO, GEO 진단 요청하기". 문의하기와 같은 ContactModal 을 열어
  구글시트 기록·메일 알림으로 받는다 (source: discovery_hero / discovery_cta)
- 공개 폼에서 supporter_builds 큐에 자동 빌드를 넣던 경로를 끊는다
- 히어로의 "샘플 리포트 보기" 버튼 제거 (실제 병원 리포트로 연결되던 링크)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Haewon Kam 2026-10-07 11:10:24 +09:00
parent 00b8339ca2
commit 63e71b73cc
3 changed files with 9 additions and 18 deletions

View File

@ -32,7 +32,7 @@ export default function DiscoveryCta({ criteriaCount, onStart }: DiscoveryCtaPro
onClick={onStart}
className="on-light inline-flex items-center h-[52px] px-[30px] bg-white rounded-full text-base font-bold text-primary-900 hover:bg-slate-100 transition-colors"
>
URL 입력으로 시작하기
AEO, GEO 진단 요청하기
</button>
<a
href={buildDiscoveryMailto('무료 진단 신청')}

View File

@ -3,7 +3,6 @@
* Hero.tsx의 배경·배지·헤드라인 구조를 따르고, 하단에 ABMR 루프 + AI 답변 목업 2열 그리드.
* 시안: docs/reports/landing/ai_discovery_landing.html (픽셀 기준)
*/
import { Link } from 'react-router';
import { motion } from 'motion/react';
import { ArrowRight } from 'lucide-react';
import AbmrLoop from './AbmrLoop';
@ -13,16 +12,14 @@ import AiAnswerMock from './AiAnswerMock';
interface DiscoveryHeroProps {
axes: AxisSummary[];
clinicName: string;
sampleReportPath: string;
criteriaCount: number;
/** CTA 클릭 → URL 입력 신청 모달 열기 */
/** CTA 클릭 → 진단 요청 폼(문의 폼과 같은 ContactModal) 열기 */
onStart: () => void;
}
export default function DiscoveryHero({
axes,
clinicName,
sampleReportPath,
criteriaCount,
onStart,
}: DiscoveryHeroProps) {
@ -86,15 +83,9 @@ export default function DiscoveryHero({
onClick={onStart}
className="inline-flex items-center justify-center gap-2 px-10 py-4 text-lg font-medium text-white rounded-full shadow-xl bg-gradient-to-r from-[#4F1DA1] to-[#021341] hover:opacity-90 transition-opacity"
>
URL 입력으로 시작하기
AEO, GEO 진단 요청하기
<ArrowRight className="w-5 h-5" />
</button>
<Link
to={sampleReportPath}
className="inline-flex items-center justify-center px-10 py-4 text-lg font-medium text-primary-900 bg-white/80 border border-slate-200 rounded-full hover:bg-white transition-colors"
>
샘플 리포트 보기
</Link>
</motion.div>
{/* ABMR loop + AI answer mock */}

View File

@ -20,10 +20,11 @@ import SampleReport from '../components/discovery/SampleReport';
import Roadmap from '../components/discovery/Roadmap';
import HonestyStrip from '../components/discovery/HonestyStrip';
import DiscoveryCta from '../components/discovery/DiscoveryCta';
import DiscoveryLeadModal from '../components/discovery/DiscoveryLeadModal';
import ContactModal from '../components/ContactModal';
export default function DiscoveryLandingPage() {
const [leadOpen, setLeadOpen] = useState(false);
// 진단 요청은 문의하기와 같은 폼(구글시트 기록 + 메일 알림)으로 받는다. source 로 어느 버튼에서 왔는지 남긴다.
const [leadSource, setLeadSource] = useState<string | null>(null);
const result = DISCOVERY_VIEWCLINIC;
const overall = useMemo(() => scoreDiscovery(AEO_GEO_RUBRIC, result), [result]);
const overallV2 = useMemo(() => scoreDiscoveryV2(AEO_GEO_RUBRIC_V2, result), [result]);
@ -47,9 +48,8 @@ export default function DiscoveryLandingPage() {
<DiscoveryHero
axes={axes}
clinicName={result.clinicName}
sampleReportPath={`/discovery/${result.id}`}
criteriaCount={criteriaCount}
onStart={() => setLeadOpen(true)}
onStart={() => setLeadSource('discovery_hero')}
/>
<WhyNow />
<HowItWorks criteriaCount={criteriaCount} categoryCount={categoryCount} />
@ -60,8 +60,8 @@ export default function DiscoveryLandingPage() {
unverifiedCount={unverifiedCount}
/>
<HonestyStrip />
<DiscoveryCta criteriaCount={criteriaCount} onStart={() => setLeadOpen(true)} />
<DiscoveryLeadModal open={leadOpen} onClose={() => setLeadOpen(false)} />
<DiscoveryCta criteriaCount={criteriaCount} onStart={() => setLeadSource('discovery_cta')} />
<ContactModal open={leadSource !== null} onClose={() => setLeadSource(null)} source={leadSource ?? 'discovery'} />
</div>
);
}