修复会议详情页显示裸user_id的问题(第9章复测发现)
创建/详情/更新/取消/我的回应这5个会议接口的 organizer.display_name/participants[].display_name 实测恒等于裸 user_id,只有列表接口 GET /meetings 会真的解析姓名。之前的注释误以为"响应已带 姓名解析"对所有会议接口都成立(可能是当时只测过列表接口就下了结论),这次复测用真实创建的 会议逐个接口验证,证伪了这个假设。 MeetingDetail 接入已有的 useUserNames(日报/月报详情页已经在用同一套机制),发起人和参会人 姓名解析不出来时不再显示裸 uid。同时更正了 MeetingCard 上那条误导性注释,说清楚它只对列表 接口成立。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
1d51e53a46
commit
d3d7e11b08
+9
-2
@@ -20349,6 +20349,13 @@ function MeetingDetail({
|
||||
const myUserId = me && me.user_id;
|
||||
const [busy, setBusy] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(false);
|
||||
const [loadError, setLoadError] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(false);
|
||||
const participantIds = (meeting && meeting.participants || []).map(p => p.user_id);
|
||||
const nameIds = meeting ? [meeting.organizer_id, ...participantIds] : [];
|
||||
const resolvedNames = useUserNames(nameIds, myUserId);
|
||||
const nameFor = (id, fallback) => {
|
||||
if (fallback && fallback !== id) return fallback;
|
||||
return id && resolvedNames[id] || fallback || id;
|
||||
};
|
||||
const load = () => meetingId && (0,_lib_im_api_js__WEBPACK_IMPORTED_MODULE_3__.getMeeting)(meetingId).then(m => {
|
||||
(0,_lib_use_cached_data_js__WEBPACK_IMPORTED_MODULE_4__.writeCachedData)('meeting:' + meetingId, m);
|
||||
setMeeting(m);
|
||||
@@ -20422,7 +20429,7 @@ function MeetingDetail({
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("dt", {
|
||||
children: "发起人"
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("dd", {
|
||||
children: meeting.organizer && meeting.organizer.display_name || meeting.organizer_display_name || meeting.organizer_id
|
||||
children: nameFor(meeting.organizer_id, meeting.organizer && meeting.organizer.display_name || meeting.organizer_display_name)
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("dt", {
|
||||
@@ -20447,7 +20454,7 @@ function MeetingDetail({
|
||||
className: "meeting-participant-list",
|
||||
children: (meeting.participants || []).map(p => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("li", {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("span", {
|
||||
children: p.display_name || p.user_id
|
||||
children: nameFor(p.user_id, p.display_name)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("em", {
|
||||
className: p.response,
|
||||
children: RESPONSE_LABEL[p.response] || '待确认'
|
||||
|
||||
Reference in New Issue
Block a user