feat(gyeol): /gyeol 단일 페이지 통합 — 9 step state, localStorage 복구
- layout: radial 그라데이션 배경 + metadata (robots noindex) - page: step state + Q1~Q7 컴포넌트 조합 - 진입 시 localStorage 복구 + step 변경 시 저장 + 제출 시 clear - 최종 제출: completion_seconds, user_agent, referrer, utm_* 자동 수집 - 에러 토스트 표시 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
36
app/gyeol/layout.tsx
Normal file
36
app/gyeol/layout.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'CONTOUR — 나를 더 선명하게 이해하는 3분',
|
||||
description: '7 질문, 3분. 자기 이해·심리 영역 짧은 설문에 참여해주세요.',
|
||||
openGraph: {
|
||||
title: 'CONTOUR — 나를 더 선명하게 이해하는 3분',
|
||||
description: '7 질문, 3분. 짧은 설문에 답해주세요.',
|
||||
url: 'https://jaengseung-made.com/gyeol',
|
||||
images: [
|
||||
{
|
||||
url: 'https://jaengseung-made.com/og-image.png',
|
||||
width: 1200,
|
||||
height: 630,
|
||||
alt: 'CONTOUR',
|
||||
},
|
||||
],
|
||||
},
|
||||
robots: {
|
||||
index: false,
|
||||
follow: false,
|
||||
},
|
||||
};
|
||||
|
||||
export default function GyeolLayout({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<div
|
||||
className="min-h-screen"
|
||||
style={{
|
||||
background: 'radial-gradient(ellipse at top, rgba(204,151,255,0.15) 0%, transparent 50%), linear-gradient(180deg, #060e20 0%, #000000 100%)',
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user