new changes

This commit is contained in:
Thigazhezhilan J 2026-03-26 00:03:45 +05:30
parent c70e3e2446
commit 6a653b55df
2 changed files with 22 additions and 16 deletions

View File

@ -1,26 +1,32 @@
import { QueryClient, QueryFunction } from "@tanstack/react-query";
const API_BASE_URL =
((import.meta as any).env?.VITE_API_BASE_URL as string | undefined) ||
((typeof window !== "undefined" &&
(window.location.hostname === "localhost" ||
window.location.hostname === "127.0.0.1")) as any
? "http://localhost:8000/api"
: undefined);
const NORMALIZED_API_BASE_URL = API_BASE_URL
? API_BASE_URL.replace(/\/+$/, "")
: "";
const ENV_API_BASE_URL = ((import.meta as any).env?.VITE_API_BASE_URL as string | undefined)?.trim();
const IS_LOCALHOST =
typeof window !== "undefined" &&
(window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1");
const API_BASE_URL = (ENV_API_BASE_URL || (IS_LOCALHOST ? "http://localhost:8000" : "https://api.quantfortune.com"))
.replace(/\/+$/, "")
.replace(/\/api$/, "");
const REQUEST_TIMEOUT_MS = 12000;
function normalizeApiPath(url: string) {
const parsed = new URL(url, "https://frontend.local");
const pathname = parsed.pathname.startsWith("/api")
? parsed.pathname
: `/api${parsed.pathname.startsWith("/") ? parsed.pathname : `/${parsed.pathname}`}`;
return `${pathname}${parsed.search}${parsed.hash}`;
}
export function resolveApiUrl(url: string) {
if (url.startsWith("http://") || url.startsWith("https://")) {
return url;
}
if (!NORMALIZED_API_BASE_URL) {
return url;
const normalizedPath = normalizeApiPath(url);
if (!API_BASE_URL) {
return normalizedPath;
}
const normalizedPath = url.startsWith("/") ? url : `/${url}`;
return `${NORMALIZED_API_BASE_URL}${normalizedPath}`;
return `${API_BASE_URL}${normalizedPath}`;
}
async function throwIfResNotOk(res: Response) {

View File

@ -3,7 +3,7 @@ import { Route, Switch, useRoute } from "wouter";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { apiRequest } from "@/lib/queryClient";
import { apiRequest, resolveApiUrl } from "@/lib/queryClient";
import AdminLayout from "./AdminLayout";
import AdminOverview from "./AdminOverview";
import AdminUsers from "./AdminUsers";
@ -31,7 +31,7 @@ export default function AdminPage() {
const checkAccess = useCallback(async () => {
try {
const res = await fetch("admin/overview", { credentials: "include" });
const res = await fetch(resolveApiUrl("admin/overview"), { credentials: "include" });
if (res.status === 401) {
setAccessState("unauthenticated");
return;