KO
베타 번역

@core / kit-landing

1.0.1 ▾
인증됨MIT
GitHub

Next.js 랜딩 페이지 키트: 블록 페이지, 리드 폼, 쿠키 배너, 동의 기반 픽셀

코드파일 14개컨텍스트약 910토큰검사 통과

.genpmignore 적용 후 주입될 정확한 트리입니다. 고정 대상:

src/app/(landing)/lp/[slug]/thanks/page.tsx읽기 전용 · f730e59
// Gracias: evento `lead` en el navegador (con consentimiento) con el eventId del envío.
import type { Metadata } from 'next';
import { notFound } from 'next/navigation';
import { ConsentGate } from '@/lib/consent/react';
import { TrackLead } from '../../../_components/track-lead';
import { loadLanding } from '../../../_lib/load';

type Props = { params: Promise<{ slug: string }>; searchParams: Promise<Record<string, string | string[] | undefined>> };
export const metadata: Metadata = { robots: { index: false, follow: false } };

const one = (v: string | string[] | undefined) => (Array.isArray(v) ? v[0] : v);

export default async function Thanks({ params, searchParams }: Props) {
  const l = await loadLanding((await params).slug);
  if (!l) notFound();
  const sp = await searchParams;
  const eventId = one(sp.e);
  const formKey = one(sp.f);
  const valid = eventId && /^lead_[A-Za-z0-9_]{6,64}$/.test(eventId);
  return (
    <main className={`landing landing--${l.data.layout} blk`}>
      {l.data.layout === 'minimal' && <style>{'.site-chrome{display:none}'}</style>}
      <h1>{l.data.thanksTitle}</h1>
      <p>{l.data.thanksText}</p>
      {valid && (
        <>
          <ConsentGate category="marketing">
            <TrackLead eventId={eventId} {...(formKey && /^[a-z][a-z0-9-]{0,47}$/.test(formKey) && { formKey })} />
          </ConsentGate>
          <ConsentGate category="analytics">
            <TrackLead eventId={eventId} {...(formKey && /^[a-z][a-z0-9-]{0,47}$/.test(formKey) && { formKey })} />
          </ConsentGate>
        </>
      )}
    </main>
  );
}

@core/kit-landing 신고

패키지를 신고하려면 GitHub로 로그인하세요.