From 71fc464ad729edefd7b2199d5e0176ac2cb9c3bb Mon Sep 17 00:00:00 2001
From: Remi  PLANEL <rplanel@pasteur.fr>
Date: Thu, 5 Oct 2023 11:24:29 +0200
Subject: [PATCH] Make refseq path handle baseUrl

---
 components/Nav/Navbar.vue | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/components/Nav/Navbar.vue b/components/Nav/Navbar.vue
index 1d807fa7..1e6de6d7 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);
 
-- 
GitLab