Aias00 opened a new issue, #4509: URL: https://github.com/apache/rocketmq-dashboard/issues/4509
### Before Creating the Bug Report - [x] I searched open and closed issues and pull requests for ACL filter loading, stale rows, and request ownership. - [x] I verified the behavior on current `master` (`987b748e8f4f421c5cd3c4c4e51a064cc7e59f18`). ### Problem The ACL page keeps `rulesLoading` and `usersLoading` as one-time initial-load flags. The combined fetch effect starts a new server request whenever the instance, filters, pagination, or refresh keys change, but it never sets either loading flag back to `true`; the completion handlers only set them to `false`. After the first load, changing a rule filter or the user search keyword therefore leaves the previous rows and totals rendered without a loading overlay while the new request is pending. Row edit/delete/admin actions remain visible against records that no longer match the active filter. If the replacement request fails, those old rows remain indefinitely under the new filter until another successful refresh. This is distinct from #3306/#3300, which covered server-page refresh after ACL user create/delete. It is also not a stale-response race: React effect cleanup already prevents an older request from publishing after its dependencies change. The missing state is the visible loading boundary for the current request. ### Proposed Design Keep the existing request effect and API behavior: 1. Set `rulesLoading=true` immediately before each rule-page request. 2. Set `usersLoading=true` immediately before each user-page request. 3. Keep the existing mounted cleanup and `finally` ownership checks. 4. Keep current rows mounted behind the Ant Design loading overlay so table dimensions remain stable and actions are blocked during refresh. Splitting the combined effect or adding debounce behavior is outside this fix. ### Acceptance Criteria - Changing any rule filter or rule page shows the rules-table loading state until the current request settles. - Changing the ACL user keyword or user page shows the users-table loading state until the current request settles. - The loading state clears on both success and failure for the current effect. - Existing stale-response cleanup, pagination correction, mutation refresh, and instance switching remain unchanged. - Deferred-promise frontend regressions fail on the current code and pass after the fix. - Focused tests, the frontend suite, lint, build, Prettier, and `git diff --check` pass. AI-assisted analysis; behavior was verified from the current effect and table loading bindings. -- 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]
