import { Footer } from "../components/footer.tsx"; import type { ComponentChildren } from "preact"; import { useEffect, useState } from "preact/hooks"; import { useSignal } from "@preact/signals"; export function Layout({ children }: { children: ComponentChildren }) { const [isScrolled, setIsScrolled] = useState(false); const [blogHovered, setBlogHovered] = useState(false); const [workHovered, setWorkHovered] = useState(false); const [aboutHovered, setAboutHovered] = useState(false); const pathname = useSignal(""); const isActive = (href: string) => { if (href === "/") { return pathname.value === "/" || pathname.value.startsWith("/post/"); } return pathname.value === href; }; useEffect(() => { const handleScroll = () => { setIsScrolled(globalThis.scrollY > 0); }; const handlePathChange = () => { pathname.value = globalThis.location.pathname; }; globalThis.addEventListener("scroll", handleScroll); globalThis.addEventListener("popstate", handlePathChange); handleScroll(); // Check initial scroll position handlePathChange(); // Set initial path return () => { globalThis.removeEventListener("scroll", handleScroll); globalThis.removeEventListener("popstate", handlePathChange); }; }, []); return (