= {
+ '': 'Your Sites',
+ integrations: 'Integrations',
+ pricing: 'Pricing',
+}
+
+function useHomePageTitle() {
+ const pathname = usePathname()
+ const segment = pathname.split('/').filter(Boolean)[0] ?? ''
+ return HOME_PAGE_TITLES[segment] ?? (segment ? segment.charAt(0).toUpperCase() + segment.slice(1) : 'Your Sites')
+}
+
// Load sidebar only on the client — prevents SSR flash
const Sidebar = dynamic(() => import('./Sidebar'), {
ssr: false,
@@ -58,7 +70,8 @@ function GlassTopBar({ siteId }: { siteId: string | null }) {
}, [realtime])
const dashboardTitle = usePageTitle()
- const pageTitle = siteId ? dashboardTitle : 'Your Sites'
+ const homeTitle = useHomePageTitle()
+ const pageTitle = siteId ? dashboardTitle : homeTitle
return (
diff --git a/components/sites/SiteList.tsx b/components/sites/SiteList.tsx
index a0d2d70..8065672 100644
--- a/components/sites/SiteList.tsx
+++ b/components/sites/SiteList.tsx
@@ -5,7 +5,7 @@ import Image from 'next/image'
import { Site } from '@/lib/api/sites'
import type { Stats } from '@/lib/api/stats'
import { formatNumber } from '@ciphera-net/ui'
-import { BarChartIcon, SettingsIcon, BookOpenIcon, ExternalLinkIcon, Button } from '@ciphera-net/ui'
+import { BarChartIcon, SettingsIcon, TrashIcon, BookOpenIcon, ExternalLinkIcon, Button } from '@ciphera-net/ui'
import { useAuth } from '@/lib/auth/context'
import { FAVICON_SERVICE_URL } from '@/lib/utils/favicon'
@@ -104,6 +104,13 @@ function SiteCard({ site, stats, statsLoading, onDelete, canDelete }: SiteCardPr
View Dashboard
+
+
+
{canDelete && (
)}