diff --git a/src/views/workplace-collaboration-view.jsx b/src/views/workplace-collaboration-view.jsx index 04984714..7fc1fba7 100644 --- a/src/views/workplace-collaboration-view.jsx +++ b/src/views/workplace-collaboration-view.jsx @@ -400,8 +400,15 @@ function MeetingDetail({hashParams, onToast}) { }; const respond = response => { setBusy(true); + // Live-repro'd (round 14): RESPONSE_LABEL's 'accepted'/'declined' entries are already prefixed + // ("已接受"/"已拒绝") for use as the disabled-button/participant-badge label elsewhere on this + // page -- reusing it here with an extra literal "已" in front produced a toast reading "已已接受"/ + // "已已拒绝" (and a slightly-off "已待定" for tentative, since that entry has no "已" to double up + // with). MeetingCard's own respond() (this same action, reached from the list card instead of this + // detail page) already had correct, un-doubled wording for all three -- reuse that instead of + // re-deriving new strings from RESPONSE_LABEL. getMeeting(meeting.meeting_id).then(fresh => respondMeeting(fresh.meeting_id, response, fresh.version)) - .then(_ => { onToast(RESPONSE_LABEL[response] ? `已${RESPONSE_LABEL[response]}` : '已回应'); load(); }) + .then(_ => { onToast(response === 'accepted' ? '已接受会议邀请' : response === 'declined' ? '已拒绝会议邀请' : '已标记为待定'); load(); }) .catch(err => onToast(err.message || '操作失败')).finally(() => setBusy(false)); };