update nav and footer for setup docs page

This commit is contained in:
FURRO404
2026-05-30 07:03:45 -07:00
parent f9efd77844
commit 64c72d2ecb
2 changed files with 40 additions and 0 deletions
+34
View File
@@ -31,6 +31,7 @@ const navItems = [
{ path: '/teams', label: 'Team leaderboard' },
{ path: '/battle-logs', label: 'Battle Logs' },
{ path: '/viewers', label: 'Viewers' },
{ path: '/docs', label: 'Setup' },
]
const analyticsConsentKey = 'tssbot.analyticsConsent'
@@ -75,6 +76,7 @@ function parseRoute(pathname = window.location.pathname) {
if (pathname === '/uptime') return { page: 'uptime', teamName: '' }
if (pathname === '/viewers') return { page: 'viewers', teamName: '' }
if (pathname === '/privacy') return { page: 'privacy', teamName: '' }
if (pathname === '/docs') return { page: 'docs', teamName: '' }
if (pathname.startsWith('/teams/')) {
const teamName = decodeURIComponent(pathname.slice('/teams/'.length))
return { page: 'team', teamName }
@@ -353,6 +355,7 @@ function routeLabel(route) {
if (route.page === 'uptime') return 'Uptime'
if (route.page === 'viewers') return 'viewers'
if (route.page === 'privacy') return 'Privacy notice'
if (route.page === 'docs') return 'Docs'
return 'Home'
}
@@ -367,6 +370,7 @@ function canonicalPathForRoute(route) {
if (route.page === 'uptime') return '/uptime'
if (route.page === 'viewers') return '/viewers'
if (route.page === 'privacy') return '/privacy'
if (route.page === 'docs') return '/docs'
return '/'
}
@@ -425,6 +429,12 @@ function seoForRoute(route, profileDetail = null) {
robots: 'index, follow',
path: '/privacy',
},
docs: {
title: "Docs | Toothless' TSS Bot",
description: 'Documentation and command reference for Toothless TSS Bot.',
robots: 'noindex, follow',
path: '/docs',
},
}
return byPage[route.page] || {
@@ -1591,6 +1601,7 @@ function AppContent() {
{route.page === 'uptime' ? <UptimePage uptime={uptime} /> : null}
{route.page === 'viewers' ? <ViewersPage viewers={viewers} /> : null}
{route.page === 'privacy' ? <PrivacyPage /> : null}
{route.page === 'docs' ? <DocsPage /> : null}
</section>
<Footer navigate={navigate} />
<ConsentBanner preferences={analyticsPreferences} onChoose={chooseAnalyticsConsent} />
@@ -1625,6 +1636,13 @@ function Footer({ navigate }) {
>
Privacy
</button>
<button
className="w-fit font-semibold text-fury-cyan transition hover:text-text"
onClick={() => navigate('/docs')}
type="button"
>
Documentation
</button>
<a
className="w-fit font-semibold text-fury-cyan transition hover:text-text"
href="https://github.com/Clippii/tssbot.web"
@@ -1927,6 +1945,22 @@ function PrivacyPage() {
)
}
function DocsPage() {
return (
<section className="mx-auto max-w-4xl pb-12 pt-24 sm:pt-28">
<div className="border-b border-border pb-6">
<p className="text-sm font-semibold uppercase tracking-wide text-fury-cyan">
Docs
</p>
<h1 className="mt-2 text-4xl font-bold">Documentation</h1>
<p className="mt-3 text-text-soft">
Coming soon.
</p>
</div>
</section>
)
}
function PrivacySection({ children, title }) {
return (
<article className="border-l border-border pl-4">
+6
View File
@@ -1974,6 +1974,12 @@ function routeSeo(pathname) {
robots: 'index, follow',
path: '/privacy',
},
'/docs': {
title: "Docs | Toothless' TSS Bot",
description: 'Documentation and command reference for Toothless TSS Bot.',
robots: 'noindex, follow',
path: '/docs',
},
}
return byPath[cleanPath] || byPath['/']