From 89aa6411b09f868cd6c344f38c1d14d7ae455bb3 Mon Sep 17 00:00:00 2001
From: Flatlogic Bot
Date: Thu, 11 Jun 2026 12:44:44 +0000
Subject: [PATCH] refactor: centralize public site navigation
---
frontend/src/components/PublicSiteNav.tsx | 49 +++++++++++++++++++++++
frontend/src/pages/about.tsx | 37 +----------------
frontend/src/pages/how-it-works.tsx | 47 +---------------------
frontend/src/pages/index.tsx | 42 +------------------
frontend/src/pages/login.tsx | 43 +-------------------
frontend/src/pages/services.tsx | 37 +----------------
6 files changed, 59 insertions(+), 196 deletions(-)
create mode 100644 frontend/src/components/PublicSiteNav.tsx
diff --git a/frontend/src/components/PublicSiteNav.tsx b/frontend/src/components/PublicSiteNav.tsx
new file mode 100644
index 0000000..97108f3
--- /dev/null
+++ b/frontend/src/components/PublicSiteNav.tsx
@@ -0,0 +1,49 @@
+import Link from 'next/link';
+
+const links = [
+ { href: '/how-it-works/', label: 'How it works' },
+ { href: '/about/', label: 'About' },
+ { href: '/services/', label: 'Packages' },
+ { href: '/client-portal/', label: 'Client login' },
+];
+
+export default function PublicSiteNav() {
+ return (
+
+ );
+}
diff --git a/frontend/src/pages/about.tsx b/frontend/src/pages/about.tsx
index ba7fa5e..3e38ae6 100644
--- a/frontend/src/pages/about.tsx
+++ b/frontend/src/pages/about.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import type { ReactElement } from 'react';
import Head from 'next/head';
import Link from 'next/link';
+import PublicSiteNav from '../components/PublicSiteNav';
import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
import { publicCoachSite } from '../coachingSite';
@@ -24,40 +25,6 @@ const ui = {
heading: 'font-serif font-semibold tracking-tight text-[#19192d]',
};
-function Nav() {
- return (
-
- );
-}
-
export default function AboutCoach() {
return (
<>
@@ -75,7 +42,7 @@ export default function AboutCoach() {
-
+
diff --git a/frontend/src/pages/how-it-works.tsx b/frontend/src/pages/how-it-works.tsx
index 8f18231..8fc4ab5 100644
--- a/frontend/src/pages/how-it-works.tsx
+++ b/frontend/src/pages/how-it-works.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import type { ReactElement } from 'react';
import Head from 'next/head';
import Link from 'next/link';
+import PublicSiteNav from '../components/PublicSiteNav';
import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
@@ -149,50 +150,6 @@ const faq = [
],
];
-function Nav() {
- return (
-
-
-
-
- C
-
-
Coaching SaaS Workspace
-
-
- How it works
- About
- Packages
- Client login
- Compare
- Trust
-
-
- Start assessment
-
-
-
- How it works
- About
- Packages
- Client login
-
-
- );
-}
-
function WaveDivider({
from = '#fffdf9',
to = '#19192d',
@@ -458,7 +415,7 @@ export default function HowItWorks() {
-
+
How it works
diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx
index 1d802e6..2ea3ed0 100644
--- a/frontend/src/pages/index.tsx
+++ b/frontend/src/pages/index.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import type { ReactElement } from 'react';
import Head from 'next/head';
import Link from 'next/link';
+import PublicSiteNav from '../components/PublicSiteNav';
import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
@@ -175,46 +176,7 @@ export default function Starter() {
-
-
-
-
- C
-
-
Coaching SaaS Workspace
-
-
- How it works
- About
- Packages
- Client login
- Pricing
- Compare
- Trust
-
-
- Start assessment
-
-
-
- How it works
- About
- Packages
- Client login
-
-
+
diff --git a/frontend/src/pages/login.tsx b/frontend/src/pages/login.tsx
index cc0b446..4d6c45e 100644
--- a/frontend/src/pages/login.tsx
+++ b/frontend/src/pages/login.tsx
@@ -7,6 +7,7 @@ import { mdiEye, mdiEyeOff } from '@mdi/js';
import { toast, ToastContainer } from 'react-toastify';
import { useRouter } from 'next/router';
import BaseIcon from '../components/BaseIcon';
+import PublicSiteNav from '../components/PublicSiteNav';
import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
import { findMe, loginUser, resetAction } from '../stores/authSlice';
@@ -57,46 +58,6 @@ const demoAccounts = [
},
];
-function Nav() {
- return (
-
- );
-}
-
export default function Login() {
const router = useRouter();
const dispatch = useAppDispatch();
@@ -166,7 +127,7 @@ export default function Login() {
-
+
diff --git a/frontend/src/pages/services.tsx b/frontend/src/pages/services.tsx
index 97a6918..5a6a1a9 100644
--- a/frontend/src/pages/services.tsx
+++ b/frontend/src/pages/services.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import type { ReactElement } from 'react';
import Head from 'next/head';
import Link from 'next/link';
+import PublicSiteNav from '../components/PublicSiteNav';
import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
import { publicCoachSite } from '../coachingSite';
@@ -23,40 +24,6 @@ const ui = {
heading: 'font-serif font-semibold tracking-tight text-[#19192d]',
};
-function Nav() {
- return (
-
- );
-}
-
export default function Services() {
return (
<>
@@ -74,7 +41,7 @@ export default function Services() {
-
+