/
kan64
/
spreadsheet-lab
Обзор
Документация
Войти
/
kan64
/
spreadsheet-lab
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
client/src/utils/avatarUtils.ts
25 строк
1 KB
Anton Kravchenkov
feat: Add avatar color
04 мар 2026, 23:25
04 мар 2026, 23:25
f05c921
Код
Авторство
О чём код?
/** Палитра из 20 цветов для аватарок (совпадает с бэком) */ const AVATAR_COLORS = [ '#E53935', '#D81B60', '#8E24AA', '#5E35B1', '#3949AB', '#1E88E5', '#039BE5', '#00ACC1', '#00897B', '#43A047', '#7CB342', '#C0CA33', '#FDD835', '#FFB300', '#FB8C00', '#F4511E', '#6D4C41', '#757575', '#546E7A', '#455A64', ]; /** * Возвращает детерминированный цвет из палитры по строке (username). * Fallback, когда avatarColor не пришёл с бэка. */ export function getAvatarColor(seed: string): string { let hash = 0; for (let i = 0; i < seed.length; i++) { hash = seed.charCodeAt(i) + ((hash << 5) - hash); } const index = Math.abs(hash % AVATAR_COLORS.length); return AVATAR_COLORS[index]; } /** Цвет аватара: с бэка или fallback по username */ export function resolveAvatarColor(username: string, avatarColor?: string | null): string { return avatarColor ?? getAvatarColor(username); }