feat: implement landing page structure with legal pages, footer, CTA, and domain redirection proxy

This commit is contained in:
2026-04-14 10:30:46 +02:00
parent 765eea05f7
commit 383d8484a6
14 changed files with 515 additions and 319 deletions

View File

@@ -1,9 +1,10 @@
'use client'
import Link from 'next/link'
import { useEffect, useState } from 'react'
import { useLang } from '@/context/LangContext'
import type { Lang } from '@/lib/i18n'
'use client'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { useEffect, useState } from 'react'
import { useLang } from '@/context/LangContext'
import type { Lang } from '@/lib/i18n'
const LANGS: { code: Lang; label: string; flag: string }[] = [
{ code: 'de', label: 'DE', flag: 'DE' },
@@ -11,10 +12,12 @@ const LANGS: { code: Lang; label: string; flag: string }[] = [
{ code: 'es', label: 'ES', flag: 'ES' },
]
export default function Navbar() {
const [scrolled, setScrolled] = useState(false)
const [menuOpen, setMenuOpen] = useState(false)
const { lang, setLang, t } = useLang()
export default function Navbar() {
const [scrolled, setScrolled] = useState(false)
const [menuOpen, setMenuOpen] = useState(false)
const pathname = usePathname()
const { lang, setLang, t } = useLang()
const homeHref = (hash: string) => (pathname === '/' ? hash : `/${hash}`)
useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 40)
@@ -29,13 +32,13 @@ export default function Navbar() {
GREENLENS
</Link>
<div className={`nav-links${menuOpen ? ' nav-links--open' : ''}`}>
<a href="#features" onClick={() => setMenuOpen(false)}>{t.nav.features}</a>
<a href="#intelligence" onClick={() => setMenuOpen(false)}>{t.nav.tech}</a>
<a href="#faq" onClick={() => setMenuOpen(false)}>FAQ</a>
<a href="#how" onClick={() => setMenuOpen(false)}>{t.nav.how}</a>
<Link href="/support" onClick={() => setMenuOpen(false)}>Support</Link>
<a href="#cta" onClick={() => setMenuOpen(false)}>{t.nav.download}</a>
<div className={`nav-links${menuOpen ? ' nav-links--open' : ''}`}>
<a href={homeHref('#features')} onClick={() => setMenuOpen(false)}>{t.nav.features}</a>
<a href={homeHref('#intelligence')} onClick={() => setMenuOpen(false)}>{t.nav.tech}</a>
<a href={homeHref('#faq')} onClick={() => setMenuOpen(false)}>FAQ</a>
<a href={homeHref('#how')} onClick={() => setMenuOpen(false)}>{t.nav.how}</a>
<Link href="/support" onClick={() => setMenuOpen(false)}>Support</Link>
<a href={homeHref('#cta')} onClick={() => setMenuOpen(false)}>{t.nav.download}</a>
<div className="lang-switcher" role="group" aria-label="Language selector">
{LANGS.map((l) => (
@@ -55,8 +58,8 @@ export default function Navbar() {
))}
</div>
<a href="#cta" className="nav-cta" onClick={() => setMenuOpen(false)}>{t.nav.cta}</a>
</div>
<a href={homeHref('#cta')} className="nav-cta" onClick={() => setMenuOpen(false)}>{t.nav.cta}</a>
</div>
<button
className="nav-hamburger"