Skip to content

Commit 928c230

Browse files
authored
Merge pull request #2235 from woocommerce/issue/2072-commit-product-image-changes
Image upload UX: after adding product images, automatically commit the changes locally
2 parents e8ed299 + c111737 commit 928c230

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

WooCommerce/Classes/ViewRelated/Products/Media/ProductImagesViewController.swift

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ private extension ProductImagesViewController {
152152
}
153153

154154
@objc func doneButtonTapped() {
155+
commitAndDismiss()
156+
}
157+
158+
func commitAndDismiss() {
155159
onCompletion(productImages)
156160
}
157161

@@ -216,21 +220,24 @@ private extension ProductImagesViewController {
216220
return
217221
}
218222
uploadMediaAssetToSiteMediaLibrary(asset: asset)
223+
commitAndDismiss()
219224
}
220225
}
221226

222227
// MARK: Action handling for device media library picker
223228
//
224229
private extension ProductImagesViewController {
225230
func onDeviceMediaLibraryPickerCompletion(assets: [PHAsset]) {
226-
defer {
227-
dismiss(animated: true, completion: nil)
228-
}
229-
guard assets.isEmpty == false else {
230-
return
231-
}
232-
assets.forEach { asset in
233-
uploadMediaAssetToSiteMediaLibrary(asset: asset)
231+
let shouldAnimateMediaLibraryDismissal = assets.isEmpty
232+
dismiss(animated: shouldAnimateMediaLibraryDismissal) { [weak self] in
233+
guard let self = self, assets.isNotEmpty else {
234+
return
235+
}
236+
237+
assets.forEach { asset in
238+
self.uploadMediaAssetToSiteMediaLibrary(asset: asset)
239+
}
240+
self.commitAndDismiss()
234241
}
235242
}
236243
}
@@ -239,8 +246,15 @@ private extension ProductImagesViewController {
239246
//
240247
private extension ProductImagesViewController {
241248
func onWPMediaPickerCompletion(mediaItems: [Media]) {
242-
dismiss(animated: true, completion: nil)
243-
productImageActionHandler.addSiteMediaLibraryImagesToProduct(mediaItems: mediaItems)
249+
let shouldAnimateWPMediaPickerDismissal = mediaItems.isEmpty
250+
dismiss(animated: shouldAnimateWPMediaPickerDismissal) { [weak self] in
251+
guard let self = self, mediaItems.isNotEmpty else {
252+
return
253+
}
254+
255+
self.productImageActionHandler.addSiteMediaLibraryImagesToProduct(mediaItems: mediaItems)
256+
self.commitAndDismiss()
257+
}
244258
}
245259
}
246260

0 commit comments

Comments
 (0)