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]

Reply via email to