import { Link, Outlet, useRouter } from "@tanstack/react-router"; import { useEffect } from "react"; import { REPO } from "./data"; import { Icon } from "./icons"; import { Mark } from "./Mark"; import { useStill } from "./iso/Iso"; import { smooth } from "./scroll"; import { setSound, useSound } from "./iso/marimba"; import { setMode, useMode } from "./theme"; function Header() { const theme = useMode(); const dark = theme === "dark"; const sound = useSound(); return (
Ely
); } function Footer() { return ( ); } export function Shell() { const still = useStill(); const router = useRouter(); useEffect(() => { if (still) return; const { lenis, end } = smooth(); // A glide in flight must not outlive its page. const off = router.subscribe("onBeforeNavigate", () => lenis.scrollTo(lenis.animatedScroll, { immediate: true, force: true })); return () => { off(); end(); }; }, [still, router]); return ( <> Skip to content