5511ef4110
Public, unauthenticated pages required for A2P 10DLC campaign verification: - /sms-opt-in: web opt-in form (phone field, un-pre-checked consent checkbox, message description, frequency, msg&data-rates + HELP/STOP disclaimers, links to Terms & Privacy, 'Yes, sign me up!' submit). - /privacy: Privacy Policy with the mandatory SMS clauses (no third-party/affiliate sharing of mobile numbers or SMS consent, message frequency, rates disclosure). - /terms: Terms of Service with an SMS program-terms section. Business details centralized in legal-config.ts (replace SMS_SENDER with the live Twilio number once approved).
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
import "@/components/portal/portal.css";
|
|
import "./legal.css";
|
|
import { COMPANY } from "./legal-config";
|
|
|
|
export const metadata: Metadata = {
|
|
title: `${COMPANY} — Legal & SMS`,
|
|
description: `${COMPANY} SMS program opt-in, Privacy Policy and Terms of Service.`,
|
|
};
|
|
|
|
export default function LegalLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<div className="legal-root">
|
|
<header className="legal-bar">
|
|
<Link href="/portal/login" aria-label={`${COMPANY} home`}>
|
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
<img src="/image/logo.png" alt={`${COMPANY} logo`} />
|
|
</Link>
|
|
<nav>
|
|
<Link href="/sms-opt-in">SMS Alerts</Link>
|
|
<Link href="/privacy">Privacy</Link>
|
|
<Link href="/terms">Terms</Link>
|
|
</nav>
|
|
</header>
|
|
{children}
|
|
<footer className="legal-foot">
|
|
<div>© {new Date().getFullYear()} {COMPANY}. All rights reserved.</div>
|
|
<div style={{ marginTop: 8 }}>
|
|
<Link href="/sms-opt-in">SMS Alerts</Link>
|
|
<Link href="/privacy">Privacy Policy</Link>
|
|
<Link href="/terms">Terms of Service</Link>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|