diff --git a/app/composables/NavLinks.ts b/app/composables/NavLinks.ts new file mode 100644 index 0000000..10d361a --- /dev/null +++ b/app/composables/NavLinks.ts @@ -0,0 +1,85 @@ +// composables/useNavLinks.ts +import type { NavigationMenuItem } from "@nuxt/ui"; + +export const useNavLinks = () => { + const { t } = useI18n(); + + const navLinks = computed(() => [ + { + label: t("common.header.services.label"), + icon: "mdi:briefcase-outline", + children: [ + { + label: t("common.header.services.children.webDev.label"), + description: t("common.header.services.children.webDev.description"), + icon: "mdi:web", + }, + { + label: t("common.header.services.children.softwareDev.label"), + description: t( + "common.header.services.children.softwareDev.description" + ), + icon: "mdi:tools", + }, + { + label: t("common.header.services.children.eventVisual.label"), + description: t( + "common.header.services.children.eventVisual.description" + ), + icon: "mdi:monitor-dashboard", + }, + { + label: t("common.header.services.children.lab.label"), + description: t("common.header.services.children.lab.description"), + icon: "mdi:test-tube-off", + }, + ], + }, + { + label: t("common.header.projects.label"), + icon: "mdi:lightbulb-group-outline", + children: [ + { + label: t("common.header.projects.children.commercialWebsite.label"), + description: t( + "common.header.projects.children.commercialWebsite.description" + ), + icon: "mdi:web", + }, + { + label: t("common.header.projects.children.gameDev.label"), + description: t("common.header.projects.children.gameDev.description"), + icon: "mdi:gamepad-variant-outline", + }, + { + label: t("common.header.projects.children.tools.label"), + description: t("common.header.projects.children.tools.description"), + icon: "mdi:tools", + }, + { + label: t("common.header.projects.children.special.label"), + description: t("common.header.projects.children.special.description"), + icon: "mdi:star", + }, + ], + }, + { + label: t("common.header.insights.label"), + icon: "mdi:brain", + children: [ + { + label: t("common.header.insights.children.xiaomaiBlog.label"), + description: t( + "common.header.insights.children.xiaomaiBlog.description" + ), + icon: "mdi:pencil-outline", + to: "https://xiaomai.tootaio.com/", + type: "link", + target: "_blank", + }, + ], + }, + ]); + + return navLinks; +}; diff --git a/app/layouts/default.vue b/app/layouts/default.vue index 859188d..b930397 100644 --- a/app/layouts/default.vue +++ b/app/layouts/default.vue @@ -1,9 +1,19 @@