currentUserDisplay.ts
858 Bytes
import type { CurrentUserBriefDto } from "../types/authSession";
/** 登录展示名:优先全名、昵称,其次用户名、邮箱 */
export function displayNameFromUser(user: CurrentUserBriefDto | null | undefined): string {
const fullName = (user?.fullName ?? "").trim();
if (fullName) return fullName;
const nick = (user?.nick ?? "").trim();
if (nick) return nick;
const un = (user?.userName ?? "").trim();
if (un) return un;
const em = (user?.email ?? "").trim();
if (em) return em;
return "User";
}
/** 角色/权限展示:后端 roleCodes,可读化后拼接 */
export function displayRolesFromCodes(roleCodes: string[] | undefined | null): string {
const list = roleCodes?.filter((x) => (x ?? "").trim()) ?? [];
if (list.length === 0) return "—";
return list.map((c) => c.replace(/_/g, " ").trim()).join(" · ");
}