fix: ui fixes minor

This commit is contained in:
gosangam
2026-06-02 23:14:34 +05:30
parent c89cc8b779
commit 0bcda5a791
5 changed files with 40 additions and 60 deletions
+2
View File
@@ -2,6 +2,7 @@ import { Suspense } from "react";
import { SiteHeader } from "@/components/site-header"; import { SiteHeader } from "@/components/site-header";
import { SiteSidebar } from "@/components/site-sidebar"; import { SiteSidebar } from "@/components/site-sidebar";
import { SiteBottomNav } from "@/components/site-bottom-nav"; import { SiteBottomNav } from "@/components/site-bottom-nav";
import { SiteFooter } from "@/components/site-footer";
import { VerifyEmailBanner } from "@/components/auth/verify-email-banner"; import { VerifyEmailBanner } from "@/components/auth/verify-email-banner";
import { TextSelectionToolbar } from "@/components/text-selection-toolbar"; import { TextSelectionToolbar } from "@/components/text-selection-toolbar";
import { TextHighlighter } from "@/components/text-highlighter"; import { TextHighlighter } from "@/components/text-highlighter";
@@ -28,6 +29,7 @@ export default function AppLayout({
<div className="flex-1 flex flex-col md:pl-16 pb-16 md:pb-0"> <div className="flex-1 flex flex-col md:pl-16 pb-16 md:pb-0">
<SiteHeader /> <SiteHeader />
{children} {children}
<SiteFooter />
</div> </div>
<SiteBottomNav /> <SiteBottomNav />
<TextSelectionToolbar /> <TextSelectionToolbar />
+1 -8
View File
@@ -1,7 +1,7 @@
"use client"; "use client";
import Link from "next/link"; 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"; import { useAuth } from "@/components/auth/auth-provider";
/** /**
@@ -79,13 +79,6 @@ export default function HomePage() {
</p> </p>
) : null} ) : null}
<Link
href="/feedback"
className="mt-8 inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground underline-offset-4 hover:underline"
>
<MessageSquare className="size-3.5" />
Send feedback
</Link>
</div> </div>
</main> </main>
); );
+18 -11
View File
@@ -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 ( return (
<section className="pt-4"> <ul className="divide-y divide-border">
<button <li>
type="button" <button
onClick={onSignOut} type="button"
disabled={busy} onClick={onSignOut}
className="inline-flex items-center gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-4 py-2.5 text-base font-medium text-destructive hover:bg-destructive/10 transition-colors disabled:opacity-60" disabled={busy}
> className="w-full flex items-center justify-between py-3.5 group disabled:opacity-60"
<LogOut className="size-5" /> >
{busy ? "Signing out…" : "Sign out"} <span className="text-base text-foreground group-hover:text-primary transition-colors">
</button> {busy ? "Signing out…" : "Sign out from this device"}
</section> </span>
<LogOut className="size-5 text-muted-foreground group-hover:text-foreground transition-colors" />
</button>
</li>
</ul>
); );
} }
+6 -3
View File
@@ -1,10 +1,12 @@
import { SiteHeader } from "@/components/site-header"; import { SiteHeader } from "@/components/site-header";
import { SiteFooter } from "@/components/site-footer";
/** /**
* Minimal layout for legal / informational pages (Privacy Policy, Terms of * Minimal layout for legal / informational pages (Privacy Policy, Terms of
* Use, Data Deletion). Just the global SiteHeader and the content — no * Use, Data Deletion). Just the global SiteHeader, the content, and the
* sidebar, no bottom nav, no in-page reading affordances. Keeps these * site-wide feedback footer — no sidebar, no bottom nav, no in-page
* pages focused on the text they exist to deliver. * reading affordances. Keeps these pages focused on the text they exist
* to deliver.
*/ */
export default function LegalLayout({ export default function LegalLayout({
children, children,
@@ -15,6 +17,7 @@ export default function LegalLayout({
<div className="flex-1 flex flex-col"> <div className="flex-1 flex flex-col">
<SiteHeader /> <SiteHeader />
{children} {children}
<SiteFooter />
</div> </div>
); );
} }
+13 -38
View File
@@ -1,52 +1,27 @@
/** /**
* SiteFooter — one slim row. Wordmark on the left, dedication on the * SiteFooter — a single slim row carrying the feedback link. Mounted in
* right, About link in the middle. That's all. * 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 Link from "next/link";
import { MessageSquare } from "lucide-react";
export function SiteFooter() { export function SiteFooter() {
return ( return (
<footer className="mt-auto border-t border-border bg-secondary text-secondary-foreground"> <footer className="mt-auto border-t border-border bg-secondary text-secondary-foreground">
<div className="max-w-5xl mx-auto px-4 sm:px-6 py-4 flex flex-col sm:flex-row items-center justify-between gap-2 text-xs text-muted-foreground"> <div className="max-w-5xl mx-auto px-4 sm:px-6 py-3 flex items-center justify-center">
<Link <Link
href="/" href="/feedback"
aria-label="Prabhupāda Says — home" className="inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground underline-offset-4 hover:underline transition-colors"
className="font-[family-name:var(--font-title)] font-semibold uppercase tracking-[0.12em] text-[0.7rem] text-foreground/80 hover:text-foreground transition-colors"
> >
Prabhupāda Says <MessageSquare className="size-3.5" />
Send feedback
</Link> </Link>
<div className="flex flex-wrap items-center justify-center gap-x-3 gap-y-1">
<Link
href="/about"
className="hover:text-foreground transition-colors"
>
About
</Link>
<span aria-hidden>·</span>
<Link
href="/privacy"
className="hover:text-foreground transition-colors"
>
Privacy
</Link>
<span aria-hidden>·</span>
<Link
href="/terms"
className="hover:text-foreground transition-colors"
>
Terms
</Link>
<span aria-hidden>·</span>
<Link
href="/data-deletion"
className="hover:text-foreground transition-colors"
>
Data Deletion
</Link>
<span aria-hidden>·</span>
<span>All glories to Śrīla Prabhupāda</span>
</div>
</div> </div>
</footer> </footer>
); );