import logoLight from "../asset/logo-ornate-light.svg" import logoDark from "../asset/logo-ornate-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) } if (store.contextMenuOpen) { document.addEventListener("click", handleClickOutside) document.addEventListener("contextmenu", handleContextMenu) onCleanup(() => { document.removeEventListener("click", handleClickOutside) document.removeEventListener("contextmenu", handleContextMenu) }) } }) const handleLogoContextMenu = (event: MouseEvent) => { event.preventDefault() setStore("contextMenuPosition", { x: event.clientX, y: event.clientY }) setStore("contextMenuOpen", true) } return (
opencode logo light opencode logo dark
) }