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:
parent
00b8339ca2
commit
63e71b73cc
@ -32,7 +32,7 @@ export default function DiscoveryCta({ criteriaCount, onStart }: DiscoveryCtaPro
|
|||||||
onClick={onStart}
|
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"
|
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>
|
</button>
|
||||||
<a
|
<a
|
||||||
href={buildDiscoveryMailto('무료 진단 신청')}
|
href={buildDiscoveryMailto('무료 진단 신청')}
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
* Hero.tsx의 배경·배지·헤드라인 구조를 따르고, 하단에 ABMR 루프 + AI 답변 목업 2열 그리드.
|
* Hero.tsx의 배경·배지·헤드라인 구조를 따르고, 하단에 ABMR 루프 + AI 답변 목업 2열 그리드.
|
||||||
* 시안: docs/reports/landing/ai_discovery_landing.html (픽셀 기준)
|
* 시안: docs/reports/landing/ai_discovery_landing.html (픽셀 기준)
|
||||||
*/
|
*/
|
||||||
import { Link } from 'react-router';
|
|
||||||
import { motion } from 'motion/react';
|
import { motion } from 'motion/react';
|
||||||
import { ArrowRight } from 'lucide-react';
|
import { ArrowRight } from 'lucide-react';
|
||||||
import AbmrLoop from './AbmrLoop';
|
import AbmrLoop from './AbmrLoop';
|
||||||
@ -13,16 +12,14 @@ import AiAnswerMock from './AiAnswerMock';
|
|||||||
interface DiscoveryHeroProps {
|
interface DiscoveryHeroProps {
|
||||||
axes: AxisSummary[];
|
axes: AxisSummary[];
|
||||||
clinicName: string;
|
clinicName: string;
|
||||||
sampleReportPath: string;
|
|
||||||
criteriaCount: number;
|
criteriaCount: number;
|
||||||
/** CTA 클릭 → URL 입력 신청 모달 열기 */
|
/** CTA 클릭 → 진단 요청 폼(문의 폼과 같은 ContactModal) 열기 */
|
||||||
onStart: () => void;
|
onStart: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function DiscoveryHero({
|
export default function DiscoveryHero({
|
||||||
axes,
|
axes,
|
||||||
clinicName,
|
clinicName,
|
||||||
sampleReportPath,
|
|
||||||
criteriaCount,
|
criteriaCount,
|
||||||
onStart,
|
onStart,
|
||||||
}: DiscoveryHeroProps) {
|
}: DiscoveryHeroProps) {
|
||||||
@ -86,15 +83,9 @@ export default function DiscoveryHero({
|
|||||||
onClick={onStart}
|
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"
|
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" />
|
<ArrowRight className="w-5 h-5" />
|
||||||
</button>
|
</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>
|
</motion.div>
|
||||||
|
|
||||||
{/* ABMR loop + AI answer mock */}
|
{/* ABMR loop + AI answer mock */}
|
||||||
|
|||||||
@ -20,10 +20,11 @@ import SampleReport from '../components/discovery/SampleReport';
|
|||||||
import Roadmap from '../components/discovery/Roadmap';
|
import Roadmap from '../components/discovery/Roadmap';
|
||||||
import HonestyStrip from '../components/discovery/HonestyStrip';
|
import HonestyStrip from '../components/discovery/HonestyStrip';
|
||||||
import DiscoveryCta from '../components/discovery/DiscoveryCta';
|
import DiscoveryCta from '../components/discovery/DiscoveryCta';
|
||||||
import DiscoveryLeadModal from '../components/discovery/DiscoveryLeadModal';
|
import ContactModal from '../components/ContactModal';
|
||||||
|
|
||||||
export default function DiscoveryLandingPage() {
|
export default function DiscoveryLandingPage() {
|
||||||
const [leadOpen, setLeadOpen] = useState(false);
|
// 진단 요청은 문의하기와 같은 폼(구글시트 기록 + 메일 알림)으로 받는다. source 로 어느 버튼에서 왔는지 남긴다.
|
||||||
|
const [leadSource, setLeadSource] = useState<string | null>(null);
|
||||||
const result = DISCOVERY_VIEWCLINIC;
|
const result = DISCOVERY_VIEWCLINIC;
|
||||||
const overall = useMemo(() => scoreDiscovery(AEO_GEO_RUBRIC, result), [result]);
|
const overall = useMemo(() => scoreDiscovery(AEO_GEO_RUBRIC, result), [result]);
|
||||||
const overallV2 = useMemo(() => scoreDiscoveryV2(AEO_GEO_RUBRIC_V2, result), [result]);
|
const overallV2 = useMemo(() => scoreDiscoveryV2(AEO_GEO_RUBRIC_V2, result), [result]);
|
||||||
@ -47,9 +48,8 @@ export default function DiscoveryLandingPage() {
|
|||||||
<DiscoveryHero
|
<DiscoveryHero
|
||||||
axes={axes}
|
axes={axes}
|
||||||
clinicName={result.clinicName}
|
clinicName={result.clinicName}
|
||||||
sampleReportPath={`/discovery/${result.id}`}
|
|
||||||
criteriaCount={criteriaCount}
|
criteriaCount={criteriaCount}
|
||||||
onStart={() => setLeadOpen(true)}
|
onStart={() => setLeadSource('discovery_hero')}
|
||||||
/>
|
/>
|
||||||
<WhyNow />
|
<WhyNow />
|
||||||
<HowItWorks criteriaCount={criteriaCount} categoryCount={categoryCount} />
|
<HowItWorks criteriaCount={criteriaCount} categoryCount={categoryCount} />
|
||||||
@ -60,8 +60,8 @@ export default function DiscoveryLandingPage() {
|
|||||||
unverifiedCount={unverifiedCount}
|
unverifiedCount={unverifiedCount}
|
||||||
/>
|
/>
|
||||||
<HonestyStrip />
|
<HonestyStrip />
|
||||||
<DiscoveryCta criteriaCount={criteriaCount} onStart={() => setLeadOpen(true)} />
|
<DiscoveryCta criteriaCount={criteriaCount} onStart={() => setLeadSource('discovery_cta')} />
|
||||||
<DiscoveryLeadModal open={leadOpen} onClose={() => setLeadOpen(false)} />
|
<ContactModal open={leadSource !== null} onClose={() => setLeadSource(null)} source={leadSource ?? 'discovery'} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user