mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 18:10:30 +08:00
feat(web): I1 shell and I2 customer/project UI
Vue 3 + Element Plus layout with JWT login, RBAC routes, axios 401 handling with token restore, and Customers/Projects views wired to platform APIs. Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @param {unknown} err
|
||||
* @param {string} fallback
|
||||
*/
|
||||
export function apiErrorMessage(err, fallback) {
|
||||
const e = err && typeof err === "object" && "response" in err ? err : null;
|
||||
const data = e?.response?.data;
|
||||
if (typeof data === "string" && data.trim()) return data;
|
||||
if (data && typeof data === "object") {
|
||||
if (typeof data.message === "string" && data.message.trim()) return data.message;
|
||||
if (Array.isArray(data.errors)) {
|
||||
const parts = data.errors
|
||||
.map((x) => (x && typeof x === "object" ? x.defaultMessage || x.message : null))
|
||||
.filter(Boolean);
|
||||
if (parts.length) return parts.join(";");
|
||||
}
|
||||
}
|
||||
return fallback;
|
||||
}
|
||||
Reference in New Issue
Block a user