diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index bcb73058..9a1512b7 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -5,6 +5,7 @@ import { NextIntlClientProvider } from 'next-intl'; import { getLocale, getTranslations } from 'next-intl/server'; import { localeDirection, ogLocale } from '@/i18n/locales'; import { PWAInstallButton } from '@/components/pwa'; +import { PitFooter } from '@/components/pit-footer'; import './globals.css'; export async function generateMetadata(): Promise { @@ -166,6 +167,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo src="https://crawlproof.com/stats.js" strategy="afterInteractive" /> + ); diff --git a/apps/web/src/components/footer.tsx b/apps/web/src/components/footer.tsx index 2ba4bcad..dc881bf6 100644 --- a/apps/web/src/components/footer.tsx +++ b/apps/web/src/components/footer.tsx @@ -1,5 +1,4 @@ import Link from 'next/link'; -import { Footer as PfsFooter } from '@profullstack/footer/react'; import { useTranslations } from 'next-intl'; import { Logo } from '@/components/Logo'; import { LanguageSwitcher } from '@/components/LanguageSwitcher'; @@ -30,56 +29,19 @@ function TwitterIcon({ className }: { className?: string }) { ); } -// Internal links carry a message key (footer.links.*); package-manager names -// under `install` are proper nouns and stay as written. -const footerLinks = { - product: [ - { key: 'features', href: '/features' }, - { key: 'useCases', href: '/use-cases' }, - { key: 'download', href: '/download' }, - { key: 'pricing', href: '/pricing' }, - { key: 'changelog', href: '/changelog' }, - ], - install: [ - { - name: 'Homebrew (macOS)', - href: 'https://github.com/profullstack/homebrew-pairux', - external: true, - }, - { - name: 'Scoop (Windows)', - href: 'https://github.com/profullstack/scoop-pairux', - external: true, - }, - { - name: 'WinGet (Windows)', - href: 'https://github.com/profullstack/pairux.com/releases', - external: true, - }, - { - name: 'Chocolatey (Windows)', - href: 'https://github.com/profullstack/pairux.com/releases', - external: true, - }, - { name: 'AUR (Arch)', href: 'https://aur.archlinux.org/packages/pairux-bin', external: true }, - { name: 'APT (Debian)', href: 'https://github.com/profullstack/pairux-apt', external: true }, - { name: 'RPM (Fedora)', href: 'https://github.com/profullstack/pairux-rpm', external: true }, - { name: 'Gentoo', href: 'https://github.com/profullstack/gentoo-pairux', external: true }, - { name: 'Nix', href: 'https://github.com/profullstack/pairux-nix', external: true }, - ], - resources: [ - { key: 'documentation', href: '/docs' }, - { key: 'faq', href: '/docs#faq' }, - { key: 'systemRequirements', href: '/docs#requirements' }, - { key: 'troubleshooting', href: '/docs#troubleshooting' }, - ], - company: [ - { key: 'about', href: '/about' }, - { key: 'blog', href: '/blog' }, - { key: 'privacy', href: '/privacy' }, - { key: 'terms', href: '/terms' }, - ], -}; +// The links people need, one row. Message keys live under footer.links.*. +// Network links (search, ring, publish) come from the pit.world footer the +// root layout renders after this one. +const footerLinks = [ + { key: 'features', href: '/features' }, + { key: 'pricing', href: '/pricing' }, + { key: 'download', href: '/download' }, + { key: 'documentation', href: '/docs' }, + { key: 'blog', href: '/blog' }, + { key: 'about', href: '/about' }, + { key: 'privacy', href: '/privacy' }, + { key: 'terms', href: '/terms' }, +]; const socialLinks = [ { @@ -102,107 +64,45 @@ const socialLinks = [ export function Footer() { const t = useTranslations('footer'); return ( -