Newer
Older
import { graphql, useStaticQuery } from "gatsby"
import { Link } from "@onegeo-suite/gatsby-theme-onegeo"
import { UserMenu } from "@onegeo-suite/gatsby-plugin-auth"
const { className, name, userMenu = false } = props
const data = useStaticQuery(graphql`
fragment MenuItem on DirectusData_menus {
name
url
page {
slug
}
}
fragment MenusRecursive on DirectusData_menus {
children {
...MenuItem
children {
...MenuItem
children {
...MenuItem
}
}
}
}
query {
directus {
menus(filter: { status: { _eq: "published" } }) {
name
...MenusRecursive
}
}
}
`)
const menuContent = data.directus.menus
const menu =
menuContent.find(
(menu: any) => name?.toLowerCase() === menu.name?.toLowerCase()
)?.children || []
const goto = (item) => {
if (!item) return "/"
if (item?.type === "page") {
const slug = item?.page?.slug || ""
if (slug.at(0) === "/") return slug
return "/" + slug
}
return item.url
}
const items = (item: any) => {
<ul className="bg-base-100 z-50 p-2 shadow-md">
{item.children.map((itemChild: any, idx: number) => {
return (
<li key={idx}>
{itemChild?.children?.length > 0 &&
items(itemChild)}
{menu?.map((item: any, key: number) => {
<svg
className="fill-current"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 24 24"
>
<path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
</svg>
)}