import logoLight from "../asset/logo-ornate-light.svg" import logoDark from "../asset/logo-ornate-dark.svg" import copyLogoLight from "../asset/lander/logo-light.svg" import copyLogoDark from "../asset/lander/logo-dark.svg" import copyWordmarkLight from "../asset/lander/wordmark-light.svg" import copyWordmarkDark from "../asset/lander/wordmark-dark.svg" import copyBrandAssetsLight from "../asset/lander/brand-assets-light.svg" import copyBrandAssetsDark from "../asset/lander/brand-assets-dark.svg" import { A, createAsync } from "@solidjs/router" import { createMemo, Match, Show, Switch } from "solid-js" import { createStore } from "solid-js/store" import { github } from "~/lib/github" import { createEffect, onCleanup } from "solid-js" import "./header-context-menu.css" export function Header(props: { zen?: boolean }) { const githubData = createAsync(() => github()) const starCount = createMemo(() => githubData()?.stars ? new Intl.NumberFormat("en-US", { notation: "compact", compactDisplay: "short", }).format(githubData()?.stars!) : "25K", ) const [store, setStore] = createStore({ mobileMenuOpen: false, contextMenuOpen: false, contextMenuPosition: { x: 0, y: 0 }, }) createEffect(() => { const handleClickOutside = () => { setStore("contextMenuOpen", false) } const handleContextMenu = (event: MouseEvent) => { event.preventDefault() setStore("contextMenuOpen", false) } const handleKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape") { setStore("contextMenuOpen", false) } } if (store.contextMenuOpen) { document.addEventListener("click", handleClickOutside) document.addEventListener("contextmenu", handleContextMenu) document.addEventListener("keydown", handleKeyDown) onCleanup(() => { document.removeEventListener("click", handleClickOutside) document.removeEventListener("contextmenu", handleContextMenu) document.removeEventListener("keydown", handleKeyDown) }) } }) const handleLogoContextMenu = (event: MouseEvent) => { event.preventDefault() setStore("contextMenuPosition", { x: event.clientX, y: event.clientY }) setStore("contextMenuOpen", true) } const copyWordmarkToClipboard = async () => { try { const wordmarkSvg = ` ` await navigator.clipboard.writeText(wordmarkSvg) } catch (err) { console.error("Failed to copy wordmark to clipboard:", err) } } const copyLogoToClipboard = async () => { try { const logoSvg = ` ` await navigator.clipboard.writeText(logoSvg) } catch (err) { console.error("Failed to copy logo to clipboard:", err) } } return (
opencode logo light opencode logo dark
) }