import { Show, createMemo, createSignal, onCleanup, onMount } from "solid-js"; import { A } from "~/ui/i18n-anchor"; import { isServer } from "solid-js/web"; import { Logo, GitHubIcon, DiscordIcon } from "~/ui/logo"; import { ThemeSelector } from "./theme-selector"; import { MobileNavigation } from "./mobile-navigation"; import { useMatch } from "@solidjs/router"; import { SUPPORTED_LOCALES } from "~/i18n/config"; import { LanguageSelector } from "./language-selector"; import { Search } from "../search"; import { useCurrentRouteMetaData } from "~/utils/route-metadata-helper"; interface Entry { title: string; path: string; children?: Entry[]; mainNavExclude: boolean; isTranslated?: boolean; } interface NavProps { tree: { learn: Entry[]; reference: Entry[]; }; } export function MainHeader(props: NavProps) { const [isScrolled, setIsScrolled] = createSignal(false); const notSolidCore = useMatch(() => "/:project/*", { project: ["solid-router", "solid-start", "solid-meta"], }); const translatedLocale = useMatch(() => "/:locale/:project/*", { locale: SUPPORTED_LOCALES, project: ["solid-router", "solid-start", "solid-meta"], }); if (!isServer) { const onScroll = () => { setIsScrolled(window.scrollY > 0); }; onMount(() => { onScroll(); window.addEventListener("scroll", onScroll, { passive: true }); }); onCleanup(() => { window.removeEventListener("scroll", onScroll); }); } const currentRouteMetaData = createMemo(() => { return useCurrentRouteMetaData(); }); return (
0}>
); }