fix(phase2a): 代码审查修复 - 8项关键/重要问题
安全修复: - WebSocket Token 增加 Redis 有效性校验(已登出用户无法建立 WS) 功能修复: - GetRecommendFriends 改为批量查询,正确返回用户名/昵称/头像 - 上下线通知:OnlineService 通过接口注入获取好友列表推送状态变更 - 管理端在线用户 API 补充用户名信息 代码质量: - 所有 json.Marshal/Redis 错误增加检查与日志 - ContactController 13 个 endpoint 统一走 handleError 业务错误映射 - 管理端 Controller 补全包注释、函数注释和结构化日志 - 前端 5 个联系人页面 avatar 工具函数抽取到 utils/avatar.js Made-with: Cursor
This commit is contained in:
21
frontend/src/utils/avatar.js
Normal file
21
frontend/src/utils/avatar.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* 头像工具函数
|
||||
*
|
||||
* 提供头像颜色生成和首字母提取功能,供联系人相关页面统一使用。
|
||||
* 颜色基于用户名首字符 charCode 做确定性映射,保证同一用户每次展示颜色一致。
|
||||
*/
|
||||
|
||||
export const AVATAR_COLORS = ['#7C3AED', '#2563EB', '#0891B2', '#059669', '#D97706', '#DC2626', '#7C3AED', '#4F46E5']
|
||||
|
||||
/** 根据用户名生成确定性头像背景色 */
|
||||
export const getAvatarColor = (name) => {
|
||||
if (!name) return AVATAR_COLORS[0]
|
||||
const code = name.charCodeAt(0)
|
||||
return AVATAR_COLORS[code % AVATAR_COLORS.length]
|
||||
}
|
||||
|
||||
/** 提取用户名首字母(大写) */
|
||||
export const getInitial = (name) => {
|
||||
if (!name) return '?'
|
||||
return name.charAt(0).toUpperCase()
|
||||
}
|
||||
Reference in New Issue
Block a user