A documentation link in the sidebar, and the footer points home
Documentation above Settings, opening in a new tab — the docs are read beside the work, not instead of it. The footer's "Fluksio - <year>" links to fluksio.com; the sidebar logo deliberately keeps going Home, since navigating a running installation away to a marketing page is not what pressing it means. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,16 @@ export function Footer() {
|
|||||||
return (
|
return (
|
||||||
<footer className="border-t py-4 px-6">
|
<footer className="border-t py-4 px-6">
|
||||||
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
||||||
<p className="text-muted-foreground text-sm">Fluksio - {currentYear}</p>
|
<p className="text-muted-foreground text-sm">
|
||||||
|
{/* The mark's own home. Same tab, the way a footer brand line
|
||||||
|
conventionally goes — the sidebar logo is what stays put. */}
|
||||||
|
<a
|
||||||
|
href="https://fluksio.com"
|
||||||
|
className="hover:text-foreground transition-colors"
|
||||||
|
>
|
||||||
|
Fluksio - {currentYear}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
{socialLinks.map(({ icon: Icon, href, label }) => (
|
{socialLinks.map(({ icon: Icon, href, label }) => (
|
||||||
<a
|
<a
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
ArrowLeft,
|
ArrowLeft,
|
||||||
Bell,
|
Bell,
|
||||||
|
BookOpen,
|
||||||
FlaskConical,
|
FlaskConical,
|
||||||
Home,
|
Home,
|
||||||
KeyRound,
|
KeyRound,
|
||||||
@@ -25,6 +26,15 @@ import useAuth from "@/hooks/useAuth"
|
|||||||
import { portalConfig } from "@/lib/portal"
|
import { portalConfig } from "@/lib/portal"
|
||||||
import { type Item, Main } from "./Main"
|
import { type Item, Main } from "./Main"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where the documentation is published.
|
||||||
|
*
|
||||||
|
* A constant rather than something derived: an installation reached over a LAN
|
||||||
|
* address, or at localhost, has no domain to build this from, and the docs are
|
||||||
|
* one site for all of them.
|
||||||
|
*/
|
||||||
|
const DOCS_URL = "https://docs.fluksio.com"
|
||||||
|
|
||||||
const baseItems: Item[] = [
|
const baseItems: Item[] = [
|
||||||
// "Home" rather than "Dashboard": dashboards are their own thing now, and
|
// "Home" rather than "Dashboard": dashboards are their own thing now, and
|
||||||
// the brain and the health screens are sections of Home rather than routes.
|
// the brain and the health screens are sections of Home rather than routes.
|
||||||
@@ -63,9 +73,18 @@ export function AppSidebar() {
|
|||||||
]
|
]
|
||||||
: withAdmin
|
: withAdmin
|
||||||
|
|
||||||
|
// A new tab rather than a navigation: the docs are read beside the work,
|
||||||
|
// not instead of it.
|
||||||
|
const docs: Item = {
|
||||||
|
icon: BookOpen,
|
||||||
|
title: "Documentation",
|
||||||
|
onClick: () => window.open(DOCS_URL, "_blank", "noopener"),
|
||||||
|
}
|
||||||
|
|
||||||
const footerItems: Item[] = portal
|
const footerItems: Item[] = portal
|
||||||
? [{ icon: Settings, title: "Settings", path: "/settings" }]
|
? [docs, { icon: Settings, title: "Settings", path: "/settings" }]
|
||||||
: [
|
: [
|
||||||
|
docs,
|
||||||
{ icon: Settings, title: "Settings", path: "/settings" },
|
{ icon: Settings, title: "Settings", path: "/settings" },
|
||||||
{ icon: LogOut, title: "Log Out", onClick: logout },
|
{ icon: LogOut, title: "Log Out", onClick: logout },
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user