release: merge main for frontend api config removal
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
# Frontend feature flags and timeline overrides
|
# Frontend feature flags and timeline overrides
|
||||||
VITE_API_BASE_URL=
|
|
||||||
VITE_STARTUP_SUBMIT_ACCEPT_TIMEOUT_MONTHS=3
|
VITE_STARTUP_SUBMIT_ACCEPT_TIMEOUT_MONTHS=3
|
||||||
VITE_STARTUP_ACCEPT_TIMEOUT_MONTHS=3
|
VITE_STARTUP_ACCEPT_TIMEOUT_MONTHS=3
|
||||||
VITE_STARTUP_ACCEPT_APPROVAL_TIMEOUT_MONTHS=6
|
VITE_STARTUP_ACCEPT_APPROVAL_TIMEOUT_MONTHS=6
|
||||||
|
|||||||
@@ -7,12 +7,9 @@ import { useStudyStore } from "../store/study";
|
|||||||
import { TEXT } from "../locales";
|
import { TEXT } from "../locales";
|
||||||
import { extendAccessToken, forceLogout, lockSession, markNetworkActive } from "../session/sessionManager";
|
import { extendAccessToken, forceLogout, lockSession, markNetworkActive } from "../session/sessionManager";
|
||||||
import { useSessionStore } from "../store/session";
|
import { useSessionStore } from "../store/session";
|
||||||
import { resolveApiBaseUrl } from "./baseUrl";
|
|
||||||
|
|
||||||
const apiBaseUrl = resolveApiBaseUrl(import.meta.env.VITE_API_BASE_URL);
|
|
||||||
|
|
||||||
const instance: AxiosInstance = axios.create({
|
const instance: AxiosInstance = axios.create({
|
||||||
baseURL: apiBaseUrl,
|
baseURL: "/",
|
||||||
timeout: 15000,
|
timeout: 15000,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
|
||||||
import { resolveApiBaseUrl } from "./baseUrl";
|
|
||||||
|
|
||||||
describe("resolveApiBaseUrl", () => {
|
|
||||||
it("defaults to same-origin root when no env override is set", () => {
|
|
||||||
expect(resolveApiBaseUrl(undefined)).toBe("/");
|
|
||||||
expect(resolveApiBaseUrl("")).toBe("/");
|
|
||||||
expect(resolveApiBaseUrl(" ")).toBe("/");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("preserves explicit root", () => {
|
|
||||||
expect(resolveApiBaseUrl("/")).toBe("/");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("trims whitespace and trailing slashes from absolute base urls", () => {
|
|
||||||
expect(resolveApiBaseUrl(" http://localhost:8000/ ")).toBe("http://localhost:8000");
|
|
||||||
expect(resolveApiBaseUrl("https://api.example.com///")).toBe("https://api.example.com");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
const trimTrailingSlashes = (value: string): string => value.replace(/\/+$/, "");
|
|
||||||
|
|
||||||
export const resolveApiBaseUrl = (rawValue: string | undefined): string => {
|
|
||||||
const normalized = rawValue?.trim() ?? "";
|
|
||||||
if (!normalized) {
|
|
||||||
return "/";
|
|
||||||
}
|
|
||||||
if (normalized === "/") {
|
|
||||||
return "/";
|
|
||||||
}
|
|
||||||
return trimTrailingSlashes(normalized);
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user