Hey ,
I'm actually not leaving any inputs empty. First I GET current data, bind it to the same layers that will be used in PATCH request and only then I submit it.
![[email removed]](https://cdn.sanity.io/images/mou08vec/production/72d89365b4c38bf8b20fc12c45b1a9b1d2764599-750x433.png)
All this works great. Even when I have Airtable opened and I submit my data, I can see it only changes cells that have been changed (which is the advantage of PATCH compared to PUT, right?).
The only problem are images. I have no way to inspect what is happening behind the scenes but I think that Bravo transforms [component:input-image] tagged layers into actual file inputs (to make native file input behavior possible).
![[email removed]](https://cdn.sanity.io/images/mou08vec/production/8155a504fabdf0a519c3867ff4ea7695a0ad71ef-776x873.png)
If that's correct, then Bravo probably doesn't even consider what image is already applied to that layer. This would align with the documentation where it says "(about input-image) turns a rectangle or image into an upload image input field".
Side note: I actually don't like this approach because it means that I need to export my image input design first and then apply it to the Figma layer to keep its appearance. So what I do instead is I overlay my Figma's image input design with a transparent image (1px x 1px fill) and add the Bravo tag to that:
![[email removed]](https://cdn.sanity.io/images/mou08vec/production/3d6bbb6a54cbd05f3479d1fdbaa6bd7cecae39ec-758x546.png)
This way when I update my Figma component, it also propagates to my Bravo-ready files. Maybe it could be something that Bravo does by itself? This way You could reduce actions necessary to make Figma designs Bravo-ready to tagging and framing only.
Anyway - I've got sidetracked 🙂 If it was possible for Bravo to recognize if [component:input-image] tagged layer has an image already applied to it and prefill native input with it, then I think edit would work exactly as expected.
(sorry for long post)