From 0bcda5a791b8acf26b39cb2a92041d0c05dbc7ff Mon Sep 17 00:00:00 2001
From: gosangam
Date: Tue, 2 Jun 2026 23:14:34 +0530
Subject: [PATCH] fix: ui fixes minor
---
app/(app)/layout.tsx | 2 ++
app/(app)/page.tsx | 9 +------
app/(app)/settings/page.tsx | 29 +++++++++++++--------
app/(legal)/layout.tsx | 9 ++++---
components/site-footer.tsx | 51 ++++++++++---------------------------
5 files changed, 40 insertions(+), 60 deletions(-)
diff --git a/app/(app)/layout.tsx b/app/(app)/layout.tsx
index eea8edd3..579ed3df 100644
--- a/app/(app)/layout.tsx
+++ b/app/(app)/layout.tsx
@@ -2,6 +2,7 @@ import { Suspense } from "react";
import { SiteHeader } from "@/components/site-header";
import { SiteSidebar } from "@/components/site-sidebar";
import { SiteBottomNav } from "@/components/site-bottom-nav";
+import { SiteFooter } from "@/components/site-footer";
import { VerifyEmailBanner } from "@/components/auth/verify-email-banner";
import { TextSelectionToolbar } from "@/components/text-selection-toolbar";
import { TextHighlighter } from "@/components/text-highlighter";
@@ -28,6 +29,7 @@ export default function AppLayout({
{children}
+
diff --git a/app/(app)/page.tsx b/app/(app)/page.tsx
index 4a1ece36..7048115d 100644
--- a/app/(app)/page.tsx
+++ b/app/(app)/page.tsx
@@ -1,7 +1,7 @@
"use client";
import Link from "next/link";
-import { Compass, LogIn, MessageSquare, Sparkles } from "lucide-react";
+import { Compass, LogIn, Sparkles } from "lucide-react";
import { useAuth } from "@/components/auth/auth-provider";
/**
@@ -79,13 +79,6 @@ export default function HomePage() {
) : null}
-
-
- Send feedback
-
);
diff --git a/app/(app)/settings/page.tsx b/app/(app)/settings/page.tsx
index 37ff5c89..12800fa3 100644
--- a/app/(app)/settings/page.tsx
+++ b/app/(app)/settings/page.tsx
@@ -92,18 +92,25 @@ function SignOutSection() {
}
}
+ // Renders as a full-width clickable row matching LegalLink — same
+ // padding, same hover, with LogOut taking the slot ChevronRight uses
+ // on link rows. The whole row is the click target.
return (
-
-
-
+
+
+
+
+
);
}
diff --git a/app/(legal)/layout.tsx b/app/(legal)/layout.tsx
index 44d36683..ef545588 100644
--- a/app/(legal)/layout.tsx
+++ b/app/(legal)/layout.tsx
@@ -1,10 +1,12 @@
import { SiteHeader } from "@/components/site-header";
+import { SiteFooter } from "@/components/site-footer";
/**
* Minimal layout for legal / informational pages (Privacy Policy, Terms of
- * Use, Data Deletion). Just the global SiteHeader and the content — no
- * sidebar, no bottom nav, no in-page reading affordances. Keeps these
- * pages focused on the text they exist to deliver.
+ * Use, Data Deletion). Just the global SiteHeader, the content, and the
+ * site-wide feedback footer — no sidebar, no bottom nav, no in-page
+ * reading affordances. Keeps these pages focused on the text they exist
+ * to deliver.
*/
export default function LegalLayout({
children,
@@ -15,6 +17,7 @@ export default function LegalLayout({
{children}
+
);
}
diff --git a/components/site-footer.tsx b/components/site-footer.tsx
index 7ecd1d49..b6b08f17 100644
--- a/components/site-footer.tsx
+++ b/components/site-footer.tsx
@@ -1,52 +1,27 @@
/**
- * SiteFooter — one slim row. Wordmark on the left, dedication on the
- * right, About link in the middle. That's all.
+ * SiteFooter — a single slim row carrying the feedback link. Mounted in
+ * both (app) and (legal) layouts so the affordance follows the user
+ * everywhere on the site without taking up perceptible vertical space.
+ *
+ * No wordmark, no about / privacy / terms links, no dedication line —
+ * those live in settings and the legal pages themselves. This footer
+ * exists solely to keep "send us feedback" one tap away from anywhere.
*/
import Link from "next/link";
+import { MessageSquare } from "lucide-react";
export function SiteFooter() {
return (