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.js
CHANGED
|
@@ -128,21 +128,79 @@ function setHeaderAuth(auth) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
/**
|
|
131
|
-
* User display data:
|
|
131
|
+
* User display data: prefers linn-i-am-userDetails (IAM), falls back to
|
|
132
|
+
* persist:userdb → profileInformation.userDetails, then authDetails.auth.user.
|
|
132
133
|
*/
|
|
133
134
|
const getUserDataFromStorage = () => {
|
|
135
|
+
// Primary source: IAM app sets this after OTP verification
|
|
134
136
|
const iamUser = getStoredUserDetails();
|
|
135
|
-
if (
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
137
|
+
if (iamUser) {
|
|
138
|
+
const name = [iamUser.firstName, iamUser.lastName].filter(Boolean).join(" ").trim();
|
|
139
|
+
const role = iamUser.roles?.length ? iamUser.roles[0] : iamUser.workInfo?.jobTitle ?? "";
|
|
140
|
+
return {
|
|
141
|
+
name: name || "",
|
|
142
|
+
email: iamUser.email || "",
|
|
143
|
+
role: role || "",
|
|
144
|
+
avatar: undefined,
|
|
145
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// Fallback: read from persist:userdb which is written by the IAM/login app
|
|
149
|
+
try {
|
|
150
|
+
const raw = localStorage.getItem("persist:userdb");
|
|
151
|
+
if (!raw)
|
|
152
|
+
return null;
|
|
153
|
+
const outer = JSON.parse(raw);
|
|
154
|
+
const parseNested = (v) => {
|
|
155
|
+
if (typeof v === "string") {
|
|
156
|
+
try {
|
|
157
|
+
return JSON.parse(v);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return v;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return v;
|
|
164
|
+
};
|
|
165
|
+
// profileInformation.userDetails has firstName, lastName, email, roles[]
|
|
166
|
+
const profileInfo = parseNested(outer.profileInformation);
|
|
167
|
+
const userDetails = profileInfo?.userDetails;
|
|
168
|
+
if (userDetails && (userDetails.firstName || userDetails.lastName || userDetails.email)) {
|
|
169
|
+
const first = userDetails.firstName || "";
|
|
170
|
+
const last = userDetails.lastName || "";
|
|
171
|
+
const name = [first, last].filter(Boolean).join(" ").trim();
|
|
172
|
+
const roles = userDetails.roles;
|
|
173
|
+
const role = roles?.length ? roles[0] : userDetails.jobTitle ?? "";
|
|
174
|
+
return {
|
|
175
|
+
name,
|
|
176
|
+
email: userDetails.email || "",
|
|
177
|
+
role: role || "",
|
|
178
|
+
avatar: undefined,
|
|
179
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
// authDetails.auth.user has firstname/lastname (lowercase n) + activeRole
|
|
183
|
+
const authDetailsRaw = parseNested(outer.authDetails);
|
|
184
|
+
const auth = authDetailsRaw?.auth;
|
|
185
|
+
const userObj = auth?.user;
|
|
186
|
+
if (auth && (userObj?.firstname || userObj?.lastname)) {
|
|
187
|
+
const first = userObj?.firstname || "";
|
|
188
|
+
const last = userObj?.lastname || "";
|
|
189
|
+
const name = [first, last].filter(Boolean).join(" ").trim();
|
|
190
|
+
const role = auth.activeRole || "";
|
|
191
|
+
return {
|
|
192
|
+
name,
|
|
193
|
+
email: "",
|
|
194
|
+
role,
|
|
195
|
+
avatar: undefined,
|
|
196
|
+
initials: name ? name.split(/\s+/).map((s) => s[0]).join("").slice(0, 2).toUpperCase() : undefined,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// ignore parse errors
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
146
204
|
};
|
|
147
205
|
const getNotificationCountFromStorage = () => {
|
|
148
206
|
const userDbString = localStorage.getItem("persist:userdb");
|