zmuxuny opened a new pull request, #5253: URL: https://github.com/apache/rocketmq-dashboard/pull/5253
### Which Issue(s) This PR Fixes - Fixes #5053. ### Problem A failed cloud-credential reload left rows and totals from the previous filter visible, with Edit and Delete enabled after loading ended. A pending search could also export data for the old filter while the page already showed the new search text. ### Changes Clear stale results on failure and show a persistent error with a retry for the current query. Track which query produced the displayed rows so actions stay disabled while a filter or page change is pending, including the search debounce window. Search edits that do not change the effective query keep the current result usable. Export stays disabled until a changed search term settles, so its CSV uses the filter shown by the page. ### Previous Submission This replaces #5054, which the inactivity bot closed after seven days without activity. The original PR preserves the earlier context and regression-test history. The issue remains open and the fix is still needed. The original branch was refreshed onto `rocketmq-studio@a460673f`, preserving upstream changes. Tested head: `1d5048c410d05c1357cd872d37cacf9c66ac6f49`. ### How Did You Test This Change? Validation rerun on the refreshed branch on 2026-10-01: - `cd web && npx vitest run src/pages/settings/__tests__/CloudCredentialTab.test.tsx`: **15 passed**. - The regression loads an Aliyun row, changes to the Tencent filter, rejects the new request, verifies that old actions are disabled while pending and stale rows disappear on failure, then retries successfully with the Tencent row. - Additional coverage includes initial-load failure, whitespace-only search changes, and the pending-search export boundary. The pending-action and export assertions failed before their corresponding fixes. - ESLint and Prettier passed for `CloudCredentialTab.tsx` and its test. `git diff --check`: passed. Known verification limits: - The refreshed branch's TypeScript check is blocked by the unchanged upstream `MetricsExplorer.test.tsx:516` TS2353 error (`query` is absent from the inferred parameter type), also reproduced on clean upstream. This supersedes the old PR's historical TypeScript pass. - The full frontend build is not claimed as passing. The separate final-artifact license gate tracked in #5019 was not revalidated past the TypeScript blocker. - Full CI is pending for this new PR. The refreshed base includes #5020 and #5029. ### Checklist - [x] One coherent bug fix; no unrelated changes - [x] Conventional Commit subjects - [x] Regression coverage for interrupted and repeated flows - [x] Existing Chinese/English strings reused; no new UI text - [x] No new source files or API contract - [ ] Full CI is green -- 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]
