Redesign Menu

This commit is contained in:
Thanakarn Klangkasame
2025-10-14 10:58:10 +07:00
parent a20c986d5d
commit 9145e48d7d
26 changed files with 2649 additions and 1386 deletions

View File

@@ -0,0 +1,41 @@
import {NextRequest} from "next/server";
function decodeB64Json(b64: string) {
try {
const s = b64.replace(/-/g, "+").replace(/_/g, "/");
const pad = s.length % 4 === 2 ? "=="
: s.length % 4 === 3 ? "="
: "";
const json = Buffer.from(s + pad, "base64").toString("utf8");
return JSON.parse(json);
} catch {
return null;
}
}
export function resolveTenantFromRequest(req: NextRequest): string {
const ui = req.cookies.get("user_info")?.value;
if (ui) {
try {
const parsed = JSON.parse(Buffer.from(ui, "base64").toString("utf8"));
if (parsed?.tenantKey && typeof parsed.tenantKey === "string") return parsed.tenantKey;
} catch {
}
}
const access = req.cookies.get("access_token")?.value;
if (access && access.split(".").length >= 2) {
const payloadB64 = access.split(".")[1];
const payload = decodeB64Json(payloadB64);
const tk = payload?.tenant_key ?? payload?.tenantKey;
if (typeof tk === "string" && tk) return tk;
}
const host = req.headers.get("host") ?? "";
const parts = host.split(".");
if (parts.length >= 3) return parts[0];
if (process.env.DEFAULT_TENANT_KEY) return process.env.DEFAULT_TENANT_KEY;
return "default";
}