diff --git a/src/app/app/layout.tsx b/src/app/app/layout.tsx index b3dcec9..1077edd 100644 --- a/src/app/app/layout.tsx +++ b/src/app/app/layout.tsx @@ -1,16 +1,7 @@ "use client"; -import { usePwaMode } from "@/lib/use-pwa-mode"; import { PwaShell } from "@/components/pwa-shell"; export default function AppLayout({ children }: { children: React.ReactNode }) { - const { isPwa } = usePwaMode(); - - // In installed PWA mode, ConditionalShell already wraps everything in PwaShell. - // Only apply PwaShell here when browsing /app in a regular browser tab. - if (isPwa) { - return <>{children}; - } - return {children}; } diff --git a/src/app/app/more/page.tsx b/src/app/app/more/page.tsx index 798bfa7..6e27119 100644 --- a/src/app/app/more/page.tsx +++ b/src/app/app/more/page.tsx @@ -49,7 +49,7 @@ export default function AppMorePage() {
@@ -69,12 +69,12 @@ export default function AppMorePage() { href="https://github.com/sparshsam/openproof" target="_blank" rel="noreferrer" - className="flex items-center gap-4 rounded-2xl border border-border-default bg-bg-surface p-4 transition hover:border-accent/50" + className="flex items-center gap-4 p-2 -mx-2 rounded-xl transition hover:bg-accent/5" >
-
+

GitHub

Source code, issues, and contribution guide @@ -100,9 +100,23 @@ export default function AppMorePage() {

- OpenProof v0.9.3 · AGPL-3.0 + OpenProof v0.9.4 · AGPL-3.0

+ {/* Kovina wordmark — visible on all devices */} +
+ + + + + + + +
+ {/* Footer spacer for bottom nav on mobile */}
diff --git a/src/components/conditional-shell.tsx b/src/components/conditional-shell.tsx index 309d135..2e9dd56 100644 --- a/src/components/conditional-shell.tsx +++ b/src/components/conditional-shell.tsx @@ -26,7 +26,7 @@ export function ConditionalShell({ children }: { children: React.ReactNode }) { } }, [isPwa, pathname, router]); - // After hydration: use PWA-aware routing (may differ from SSR) + // After hydration: use PWA-aware routing if (hydrated && isPwa) { // While redirecting from / → /app, show a minimal placeholder if (pathname === "/") { @@ -36,10 +36,17 @@ export function ConditionalShell({ children }: { children: React.ReactNode }) { ); } + // /app routes: AppLayout provides PwaShell — pass through + if (pathname.startsWith("/app")) { + return <>{children}; + } + // Non-/app routes: wrap in PwaShell here return {children}; } // Before hydration OR browser mode: pathname-based routing (matches SSR) + // /app routes: AppLayout always provides PwaShell + // Non-/app routes: AppShell provides the website layout const isAppRoute = pathname.startsWith("/app"); if (isAppRoute) { return <>{children};