tju-yxq opened a new pull request, #5410:
URL: https://github.com/apache/rocketmq-dashboard/pull/5410
### Which Issue(s) This PR Fixes
- Fixes #5409
### Brief Description
`remove()` now merges its ids into the in-flight set instead of replacing it
— the same pattern the sibling `toggleArchive` uses for `archivingIds`:
- concurrent removes keep independent spinners (row buttons and the toolbar
`deleting` state stay accurate);
- this call's exit clears only the ids it owns, so one remove can no longer
wipe another's spinner;
- ids already queued by an in-flight remove are skipped via a synchronous
ref, so a repeated confirmation never double-POSTs `deleteConversation`;
- the per-call toast and selection cleanup now report the ids that call
actually attempted (`pending`), not the ids it was asked about.
### How Did You Test This Change?
```
cd web && npm test -- ConversationListModal.test.tsx --run
Test Files 1 passed (1)
Tests 20 passed (20)
```
One new test holds a two-row batch delete pending on its first request,
starts a third row's delete concurrently, and asserts: all three row buttons
render `ant-btn-loading` simultaneously (the exact state the array replace
broke — the batch rows went idle here), and letting everything resolve deletes
each conversation exactly once (three calls, one per id). The 19 existing tests
(single/selected/page deletes, failed-keep-selected, active-conversation
deletion, pager step-back, archive toggles) pass unchanged.
```
cd web && npm run lint
✖ 10 problems (0 errors, 10 warnings) # the trunk baseline
```
```
cd web && npx tsc -b --force
(no output — exit 0)
```
### Checklist
- [x] One coherent change; unrelated modifications are not bundled in
- [x] Commit subject follows Conventional Commits
- [x] Tests added or updated for non-trivial changes, test methods named
`...Test`
- [x] New UI text has both Chinese and English entries under `web/src/i18n/`
(no new UI text)
- [x] Architecture constraints stay green (`mvn test` runs the ArchUnit
checks) (no Java changes)
- [x] New source files carry the ASF license header (no new source files)
- [ ] Documentation touched where behaviour changed (guard only)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]