@@ -235,7 +309,10 @@ export function DataTable({
-
+
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index edb281b7..5cef9f0e 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -22,7 +22,7 @@ export function createApiClient({ env }: { env: Env }): AxiosInstance {
axios.defaults.withCredentials = true;
} else {
// user is accessing through a proxy
- baseURL = window.location.origin + `/${suffix}`;
+ baseURL = `${env.app.dashboardUrl}/${suffix}`;
}
if (!baseURL) {
diff --git a/src/lib/parseHostTarget.ts b/src/lib/parseHostTarget.ts
index c79c7aa3..b860f410 100644
--- a/src/lib/parseHostTarget.ts
+++ b/src/lib/parseHostTarget.ts
@@ -1,15 +1,29 @@
+
export function parseHostTarget(input: string) {
try {
- const normalized = input.match(/^https?:\/\//) ? input : `http://${input}`;
+ const normalized = input.match(/^(https?|h2c):\/\//) ? input : `http://${input}`;
const url = new URL(normalized);
- const protocol = url.protocol.replace(":", ""); // http | https
+ const protocol = url.protocol.replace(":", ""); // http | https | h2c
const host = url.hostname;
- const port = url.port ? parseInt(url.port, 10) : protocol === "https" ? 443 : 80;
+
+ let defaultPort: number;
+ switch (protocol) {
+ case "https":
+ defaultPort = 443;
+ break;
+ case "h2c":
+ defaultPort = 80;
+ break;
+ default: // http
+ defaultPort = 80;
+ break;
+ }
+
+ const port = url.port ? parseInt(url.port, 10) : defaultPort;
return { protocol, host, port };
} catch {
return null;
}
}
-