diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index 5ce60f4..3fd476e 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -51,15 +51,11 @@ export default function AdminLayout({ const router = useRouter(); const [sidebarOpen, setSidebarOpen] = useState(false); const [unreadTotal, setUnreadTotal] = useState(0); - - // Don't render admin shell on login page - if (pathname === "/admin/login") { - return <>{children}; - } + const isLoginPage = pathname === "/admin/login"; // Fetch unread counts — poll every 30s - // eslint-disable-next-line react-hooks/rules-of-hooks useEffect(() => { + if (isLoginPage) return; function fetchCounts() { adminFetch("/api/admin/unread-counts") .then((r) => r.json()) @@ -69,7 +65,12 @@ export default function AdminLayout({ fetchCounts(); const interval = setInterval(fetchCounts, 30000); return () => clearInterval(interval); - }, []); + }, [isLoginPage]); + + // Don't render admin shell on login page + if (isLoginPage) { + return <>{children}; + } async function handleLogout() { await fetch("/api/logout", { method: "POST" }); diff --git a/src/app/page.tsx b/src/app/page.tsx index 2d0ac49..fb0837a 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -9,6 +9,7 @@ import { News } from "@/components/sections/News"; import { FAQ } from "@/components/sections/FAQ"; import { Contact } from "@/components/sections/Contact"; import { BackToTop } from "@/components/ui/BackToTop"; +import { FloatingContact } from "@/components/ui/FloatingContact"; import { Header } from "@/components/layout/Header"; import { Footer } from "@/components/layout/Footer"; import { getContent } from "@/lib/content"; @@ -42,6 +43,7 @@ export default function HomePage() { +