feat: useMenuItems

This commit is contained in:
2026-03-27 08:18:18 -04:00
parent 5013935e84
commit 31ac7b8b4d
6 changed files with 44 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
import { delay } from "es-toolkit/promise";
import { delay } from "es-toolkit";
import type { ButtonProps } from "@nuxt/ui";
import type { FormSubmitEvent } from "@nuxt/ui";

View File

@@ -0,0 +1,19 @@
fragment MenuItem on MenuItem {
id
label @nullToUndefined
to: path @nullToUndefined
target
}
query MenuItems($location: MenuLocationEnum) {
menuItems(where: { location: $location, parentDatabaseId: 0 }) {
nodes {
...MenuItem
childItems {
nodes {
...MenuItem
}
}
}
}
}

View File

@@ -0,0 +1,10 @@
import type { MenuItemsVariables } from "#graphql/types";
export const useMenuItems = (variables: MenuItemsVariables) =>
useAsyncGraphQLQuery("MenuItems", variables, {
transform: ({ menuItems }) =>
extractNodes(menuItems).map(({ childItems, ...menuItem }) => ({
...menuItem,
children: extractNodes(childItems),
})),
});