40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
export const buildFullName = ({ firstName, lastName, displayName } = {}) => {
|
|
const first =
|
|
typeof firstName === "string" && firstName.trim().length > 0
|
|
? firstName.trim()
|
|
: "";
|
|
const last =
|
|
typeof lastName === "string" && lastName.trim().length > 0
|
|
? lastName.trim()
|
|
: "";
|
|
const nameFromParts = [first, last].filter(Boolean).join(" ").trim();
|
|
if (nameFromParts) return nameFromParts;
|
|
|
|
const fallbackDisplay =
|
|
typeof displayName === "string" && displayName.trim().length > 0
|
|
? displayName.trim()
|
|
: "";
|
|
return fallbackDisplay || null;
|
|
};
|
|
|
|
export const getArtistDisplayName = (source, fallback = "") => {
|
|
if (!source) return fallback;
|
|
const rawUserName =
|
|
typeof source?.userName === "string" ? source.userName.trim() : "";
|
|
if (rawUserName) return rawUserName;
|
|
|
|
const nameFromParts = buildFullName({
|
|
firstName: source?.firstName,
|
|
lastName: source?.lastName,
|
|
displayName: source?.displayName,
|
|
});
|
|
|
|
if (nameFromParts) return nameFromParts;
|
|
return fallback;
|
|
};
|
|
|
|
export const getUserPreferredArtistName = (user) => {
|
|
const display = getArtistDisplayName(user, "");
|
|
return display || null;
|
|
};
|