varminer-app-header 2.6.3 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +70 -12
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +70 -12
- package/dist/index.js.map +1 -1
- package/dist/utils/localStorage.d.ts +2 -1
- package/dist/utils/localStorage.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -98,7 +98,8 @@ interface HeaderAuthState {
|
|
|
98
98
|
*/
|
|
99
99
|
declare function setHeaderAuth(auth: HeaderAuthState | null): void;
|
|
100
100
|
/**
|
|
101
|
-
* User display data:
|
|
101
|
+
* User display data: prefers linn-i-am-userDetails (IAM), falls back to
|
|
102
|
+
* persist:userdb → profileInformation.userDetails, then authDetails.auth.user.
|
|
102
103
|
*/
|
|
103
104
|
declare const getUserDataFromStorage: () => {
|
|
104
105
|
name: string;
|
package/dist/index.esm.js
CHANGED
|
@@ -108,21 +108,79 @@ function setHeaderAuth(auth) {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
|
-
* User display data:
|
|
111
|
+
* User display data: prefers linn-i-am-userDetails (IAM), falls back to
|
|
112
|
+
* persist:userdb → profileInformation.userDetails, then authDetails.auth.user.
|
|
112
113
|
*/
|
|
113
114
|
const getUserDataFromStorage = () => {
|
|
115
|
+
// Primary source: IAM app sets this after OTP verification
|
|
114
116
|
const iamUser = getStoredUserDetails();
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
117
|
+
if (iamUser) {
|
|
118
|
+
const name = [iamUser.firstName, iamUser.lastName].filter(Boolean).join(" ").trim();
|
|
119
|
+
const role = iamUser.roles?.length ? iamUser.roles[0] : iamUser.workInfo?.jobTitle ?? "";
|
|
120
|
+
return {
|
|
121
|
+
name: name || "",
|
|
122
|
+
email: iamUser.email || "",
|
|
123
|
+
role: role || "",
|
|
124
|
+
avatar: undefined,
|
|
125
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Fallback: read from persist:userdb which is written by the IAM/login app
|
|
129
|
+
try {
|
|
130
|
+
const raw = localStorage.getItem("persist:userdb");
|
|
131
|
+
if (!raw)
|
|
132
|
+
return null;
|
|
133
|
+
const outer = JSON.parse(raw);
|
|
134
|
+
const parseNested = (v) => {
|
|
135
|
+
if (typeof v === "string") {
|
|
136
|
+
try {
|
|
137
|
+
return JSON.parse(v);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return v;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return v;
|
|
144
|
+
};
|
|
145
|
+
// profileInformation.userDetails has firstName, lastName, email, roles[]
|
|
146
|
+
const profileInfo = parseNested(outer.profileInformation);
|
|
147
|
+
const userDetails = profileInfo?.userDetails;
|
|
148
|
+
if (userDetails && (userDetails.firstName || userDetails.lastName || userDetails.email)) {
|
|
149
|
+
const first = userDetails.firstName || "";
|
|
150
|
+
const last = userDetails.lastName || "";
|
|
151
|
+
const name = [first, last].filter(Boolean).join(" ").trim();
|
|
152
|
+
const roles = userDetails.roles;
|
|
153
|
+
const role = roles?.length ? roles[0] : userDetails.jobTitle ?? "";
|
|
154
|
+
return {
|
|
155
|
+
name,
|
|
156
|
+
email: userDetails.email || "",
|
|
157
|
+
role: role || "",
|
|
158
|
+
avatar: undefined,
|
|
159
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
// authDetails.auth.user has firstname/lastname (lowercase n) + activeRole
|
|
163
|
+
const authDetailsRaw = parseNested(outer.authDetails);
|
|
164
|
+
const auth = authDetailsRaw?.auth;
|
|
165
|
+
const userObj = auth?.user;
|
|
166
|
+
if (auth && (userObj?.firstname || userObj?.lastname)) {
|
|
167
|
+
const first = userObj?.firstname || "";
|
|
168
|
+
const last = userObj?.lastname || "";
|
|
169
|
+
const name = [first, last].filter(Boolean).join(" ").trim();
|
|
170
|
+
const role = auth.activeRole || "";
|
|
171
|
+
return {
|
|
172
|
+
name,
|
|
173
|
+
email: "",
|
|
174
|
+
role,
|
|
175
|
+
avatar: undefined,
|
|
176
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// ignore parse errors
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
126
184
|
};
|
|
127
185
|
const getNotificationCountFromStorage = () => {
|
|
128
186
|
const userDbString = localStorage.getItem("persist:userdb");
|