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(" · ");
}