Neilblaze commented on issue #3464:
URL: 
https://github.com/apache/apisix-dashboard/issues/3464#issuecomment-5395454149

   Dug into this and reproduced it against the exact dashboard bundled in 
APISIX 3.17.0, which was built from c8d3466d.
   
   At that commit, `PluginCardList` kept a MobX `useLocalObservable` store, and 
its computed captured the delete handler from the first render. That render 
happens before `form.reset()` fills in the fetched values, so the handler 
closed over an empty `plugins` object. Deleting any card then rewrote `plugins` 
from that stale empty snapshot and cleared everything, which lines up with the 
empty plugins payload you captured.
   
   Current master is not affected. ec0fce26 (#3446) replaced the store with a 
plain `useMemo`, which removed the stale capture. I opened #3469 with an end to 
end regression test so this scenario stays pinned.
   
   For 3.17.0 users, the fix ships once apache/apisix bumps 
`APISIX_DASHBOARD_COMMIT` past ec0fce26. One extra heads up: on routes and 
services the same wipe saves successfully because `plugins` is optional there, 
so plugin deletion on those pages is risky on 3.17.0 as well.
   


-- 
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