Files
crawlab/frontend/crawlab-ui/src/utils/user.ts

46 lines
1.3 KiB
Go

export const isChinese = (text: string) => {
return /[\u4e00-\u9fa5]/.test(text);
};
export const isChineseName = (user: User) => {
return isChinese((user.first_name || '') + (user.last_name || ''));
};
export const getUserFullName = (user: User) => {
const firstName = user.first_name || '';
const lastName = user.last_name || '';
if (isChineseName(user)) {
return lastName + firstName;
} else {
return (firstName + ' ' + lastName).trim();
}
};
export const getUserShortName = (user: User) => {
// Get first and last name
const firstName = user.first_name || '';
const lastName = user.last_name || '';
// Fallback to username if no name provided
if (!firstName && !lastName) {
if (!user.username) {
return 'User'; // Default fallback if no username or name
}
if (isChinese(user.username)) {
return user.username.substring(0, 2);
} else {
return user.username.substring(0, 2).toUpperCase();
}
}
// If Chinese name, return at most 4 characters
if (isChineseName(user)) {
return getUserFullName(user).slice(0, 4);
}
// Otherwise, return first initial and last initial
const firstInitial = firstName ? firstName[0].toUpperCase() : '';
const lastInitial = lastName ? lastName[0].toUpperCase() : '';
return `${firstInitial}${lastInitial}`;
};