diff --git a/app/components/OgImage/ImageCard.vue b/app/components/OgImage/ImageCard.vue index d7fabde..3c86446 100644 --- a/app/components/OgImage/ImageCard.vue +++ b/app/components/OgImage/ImageCard.vue @@ -75,7 +75,7 @@ if ( console.log("\nnpx nuxi module add icon\n") } -const apiBaseServer = useSolarNetworkUrl(true) +const apiBaseServer = useSolarNetworkUrl() function toAbsoluteUrl(url: string | undefined) { if (!url) return undefined diff --git a/app/composables/useSolarNetwork.ts b/app/composables/useSolarNetwork.ts index 3a09aba..6285633 100644 --- a/app/composables/useSolarNetwork.ts +++ b/app/composables/useSolarNetwork.ts @@ -1,9 +1,16 @@ // Solar Network aka the api client import { keysToCamel, keysToSnake } from "~/utils/transformKeys" -export const useSolarNetwork = (withoutProxy = false) => { - const apiBase = useSolarNetworkUrl(withoutProxy) - const headers = process.server ? useRequestHeaders(["cookie"]) : {} +export const useSolarNetwork = () => { + const apiBase = useSolarNetworkUrl() + + // Access SSR request event only on the server + const event = import.meta.server ? useRequestEvent() : null + + // Forward cookies from the incoming request + const headers: HeadersInit = import.meta.server && event + ? { cookie: event.headers.get('cookie') ?? '' } + : {} return $fetch.create({ baseURL: apiBase, @@ -11,7 +18,7 @@ export const useSolarNetwork = (withoutProxy = false) => { headers, // Add Authorization header with Bearer token onRequest: ({ request, options }) => { - const side = process.server ? "SERVER" : "CLIENT" + const side = import.meta.server ? "SERVER" : "CLIENT" console.log(`[useSolarNetwork] onRequest for ${request} on ${side}`) // Transform request data from camelCase to snake_case @@ -28,7 +35,7 @@ export const useSolarNetwork = (withoutProxy = false) => { }) } -export const useSolarNetworkUrl = (withoutProxy = false) => { +export const useSolarNetworkUrl = () => { const config = useRuntimeConfig() return config.public.apiBase } diff --git a/app/pages/accounts/[name].vue b/app/pages/accounts/[name].vue index 901db72..72d7698 100644 --- a/app/pages/accounts/[name].vue +++ b/app/pages/accounts/[name].vue @@ -203,7 +203,7 @@ const username = computed(() => { // Use useFetch with the correct API URL to avoid router conflicts const apiBase = useSolarNetworkUrl() -const apiBaseServer = useSolarNetworkUrl(true) +const apiBaseServer = useSolarNetworkUrl() try { const { data, error } = await useFetch( diff --git a/app/pages/swagger/index.vue b/app/pages/swagger/index.vue index cfd96cd..a6484e8 100644 --- a/app/pages/swagger/index.vue +++ b/app/pages/swagger/index.vue @@ -27,7 +27,7 @@ function loadTheme(mode: string) { } } -const apiBase = useSolarNetworkUrl(true) +const apiBase = useSolarNetworkUrl() onMounted(() => { const ui = SwaggerUIBundle({ diff --git a/eslint.config.mjs b/eslint.config.mjs index 66f6b33..3f82262 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -7,7 +7,8 @@ export default withNuxt( rules: { "vue/multi-word-component-names": "off", "vue/no-v-html": "off", - "vue/html-self-closing": "off" + "vue/html-self-closing": "off", + "@typescript-eslint/ban-ts-comment": "off" } } )