'use client' import { useState, useEffect, useRef } from 'react' import { MenuIcon, CollapseLeftIcon, formatUpdatedAgo } from '@ciphera-net/ui' import { useSidebar } from '@/lib/sidebar-context' import { useRealtime } from '@/lib/swr/dashboard' export default function ContentHeader({ siteId, onMobileMenuOpen, }: { siteId: string onMobileMenuOpen: () => void }) { const { collapsed, toggle } = useSidebar() const { data: realtime } = useRealtime(siteId) const lastUpdatedRef = useRef(null) const [, setTick] = useState(0) // Track when realtime data last changed useEffect(() => { if (realtime) lastUpdatedRef.current = Date.now() }, [realtime]) // Tick every second to keep "X seconds ago" fresh useEffect(() => { if (lastUpdatedRef.current == null) return const timer = setInterval(() => setTick((t) => t + 1), 1000) return () => clearInterval(timer) }, [realtime]) return (
{/* Left — mobile hamburger or desktop collapse toggle */}
{/* Mobile hamburger */} {/* Desktop collapse toggle */}
{/* Right — realtime indicator */} {lastUpdatedRef.current != null && (
Live · {formatUpdatedAgo(lastUpdatedRef.current)}
)}
) }