From fc806f82a4a913e87fc013ae149b1cc6bfd4ce39 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Fri, 29 May 2026 04:30:36 +0200 Subject: [PATCH] feat: add Footer component with navigation links --- thoughts-frontend/app/layout.tsx | 8 ++- thoughts-frontend/components/footer.tsx | 80 +++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 thoughts-frontend/components/footer.tsx diff --git a/thoughts-frontend/app/layout.tsx b/thoughts-frontend/app/layout.tsx index c4994ba..d972f05 100644 --- a/thoughts-frontend/app/layout.tsx +++ b/thoughts-frontend/app/layout.tsx @@ -6,6 +6,7 @@ import { Header } from "@/components/header"; import localFont from "next/font/local"; import Image from "next/image"; import InstallPrompt from "@/components/install-prompt"; +import { Footer } from "@/components/footer"; export const metadata: Metadata = { title: { @@ -64,8 +65,11 @@ export default function RootLayout({ /> -
-
{children}
+
+
+
{children}
+
+
diff --git a/thoughts-frontend/components/footer.tsx b/thoughts-frontend/components/footer.tsx new file mode 100644 index 0000000..9259489 --- /dev/null +++ b/thoughts-frontend/components/footer.tsx @@ -0,0 +1,80 @@ +import Link from "next/link"; +import { + BookOpen, + Code2, + Fingerprint, + Globe, + Info, +} from "lucide-react"; + +const API_URL = process.env.NEXT_PUBLIC_API_URL ?? ""; + +const LINKS = [ + { + href: `${API_URL}/docs`, + label: "API Reference", + icon: BookOpen, + external: true, + }, + { + href: `${API_URL}/.well-known/nodeinfo`, + label: "NodeInfo", + icon: Info, + external: true, + }, + { + href: `${API_URL}/.well-known/webfinger`, + label: "WebFinger", + icon: Fingerprint, + external: true, + }, + { + href: "/about/fediverse", + label: "About the Fediverse", + icon: Globe, + external: false, + }, + { + href: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts", + label: "Source Code", + icon: Code2, + external: true, + }, +] as const; + +export function Footer() { + return ( + + ); +}