Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(ui): prevent many upload fields overwriting bulkUpload onSuccess (#…
…10189) <!-- Thank you for the PR! Please go through the checklist below and make sure you've completed all the steps. Please review the [CONTRIBUTING.md](https://github.com/payloadcms/payload/blob/main/CONTRIBUTING.md) document in this repository if you haven't already. The following items will ensure that your PR is handled as smoothly as possible: - PR Title must follow conventional commits format. For example, `feat: my new feature`, `fix(plugin-seo): my fix`. - Minimal description explained as if explained to someone not immediately familiar with the code. - Provide before/after screenshots or code diffs if applicable. - Link any related issues/discussions from GitHub or Discord. - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Fixes # --> ### What? This PR fixes an issue where multiple `upload` fields would sequentially overwrite the `BulkUpload` internal `onSuccess` function causing new uploads to populate the incorrect field from which the interaction started. ### Why? Sequential `upload` fields use a `useEffect` to set the success function of the `BulkUpload` provider component, however this did not take into account many `upload` fields in a single document. This PR prevents many `upload` fields from overriding their sibling's `onSuccess` function in order to populate those fields correctly. ### How? By changing the way the bulk upload component handles success functions from a singular function to a map of functions based on a string path of the field, or if necessary, using a collection slug in the case of a bulk upload on an `upload` collection list view. Fixes #10177 Before (One hasMany, one single): [Editing-hasmany-single--Post-before--Payload.webm](https://github.com/user-attachments/assets/01aeaa64-a065-4e66-8ab4-6bb9d4fa8556) Before (Many hasMany): [Editing-hasmany-two--Post-before--Payload.webm](https://github.com/user-attachments/assets/a65c58aa-9a15-4cca-b2c4-17484c020ddc) After (One hasMany, one single): [Editing-hasmany-single--Post-after--Payload.webm](https://github.com/user-attachments/assets/7206f94e-4ce2-41b3-8b45-625f4974d28d) After (Many hasMany): [Editing-hasmany-two--Post-after--Payload.webm](https://github.com/user-attachments/assets/72dbbdee-d4a5-4488-8ef0-3dd3918115a9)
- Loading branch information