diff --git a/components/Nav/Navbar.vue b/components/Nav/Navbar.vue index 1d807fa7006b88d7acbdfa98668ee0d90532c016..1e6de6d72b58a342f88e7302a739209a62b04804 100644 --- a/components/Nav/Navbar.vue +++ b/components/Nav/Navbar.vue @@ -38,6 +38,7 @@ <script setup lang="ts"> // import { useCustomTheme } from '~/composables/useCustomTheme' import { useDisplay, useTheme } from "vuetify"; +import { withTrailingSlash, withLeadingSlash, joinURL } from "ufo"; const runtimeConfig = useRuntimeConfig(); const { navigation } = useContent(); @@ -47,13 +48,28 @@ const theme = useTheme(); function toggleTheme() { theme.global.name.value = theme.global.current.value.dark ? "light" : "dark"; } + +const refSeqPath = ref("/refseq"); + +const refinedRefSeqPath = computed(() => { + if (refSeqPath.value?.startsWith("/") && !refSeqPath.value.startsWith("//")) { + const _base = withLeadingSlash( + withTrailingSlash(useRuntimeConfig().app.baseURL) + ); + if (_base !== "/" && !refSeqPath.value.startsWith(_base)) { + return joinURL(_base, refSeqPath.value); + } + } + return refSeqPath; +}); + const sections = ref([ { id: "webservice", label: "webservice", href: runtimeConfig.public.defenseFinderWebservice, }, - { id: "refseq", label: "REFSEQ", href: "/refseq" }, + { id: "refseq", label: "REFSEQ", href: refinedRefSeqPath }, ]); const drawer = ref(true);