diff --git a/packages/renderer/src/lib/ImagesList.svelte b/packages/renderer/src/lib/ImagesList.svelte index 0aa633ab5cba0..6703e2ee17db6 100644 --- a/packages/renderer/src/lib/ImagesList.svelte +++ b/packages/renderer/src/lib/ImagesList.svelte @@ -164,21 +164,14 @@ function toggleAllImages(checked: boolean) { // delete the items selected in the list let bulkDeleteInProgress = false; async function deleteSelectedImages() { + bulkDeleteInProgress = true; const selectedImages = images.filter(image => image.selected); - - if (selectedImages.length > 0) { - bulkDeleteInProgress = true; - await Promise.all( - selectedImages.map(async image => { - try { - await window.deleteImage(image.engineId, image.id); - } catch (e) { - console.log('error while removing image', e); - } - }), - ); - bulkDeleteInProgress = false; - } + await selectedImages.reduce((prev: Promise, image) => { + return prev + .then(() => window.deleteImage(image.engineId, `${image.name}:${image.tag}`)) + .catch((e: unknown) => console.log('error while removing image', e)); + }, Promise.resolve()); + bulkDeleteInProgress = false; } let refreshTimeouts: NodeJS.Timeout[] = []; diff --git a/packages/renderer/src/lib/image/ImageActions.svelte b/packages/renderer/src/lib/image/ImageActions.svelte index 8962b96ce5e7b..3dc350492797a 100644 --- a/packages/renderer/src/lib/image/ImageActions.svelte +++ b/packages/renderer/src/lib/image/ImageActions.svelte @@ -35,7 +35,7 @@ $: window.hasAuthconfigForImage(image.name).then(result => (isAuthenticatedForTh async function deleteImage(): Promise { try { - await window.deleteImage(image.engineId, image.id); + await window.deleteImage(image.engineId, `${image.name}:${image.tag}`); } catch (error) { errorTitle = 'Error while deleting image'; errorMessage = String(error); diff --git a/packages/renderer/src/lib/image/ImageDetails.svelte b/packages/renderer/src/lib/image/ImageDetails.svelte index 1dcb575952861..60343b2d0db1b 100644 --- a/packages/renderer/src/lib/image/ImageDetails.svelte +++ b/packages/renderer/src/lib/image/ImageDetails.svelte @@ -43,15 +43,13 @@ onMount(() => { return imagesInfos.subscribe(images => { const matchingImage = images.find(c => c.Id === imageID && c.engineId === engineId); if (matchingImage) { - try { - image = imageUtils.getImageInfoUI(matchingImage, base64RepoTag); - } catch (err) { - console.error(err); + const tempImage = imageUtils.getImageInfoUI(matchingImage, base64RepoTag); + if (tempImage) { + image = tempImage; + return; } - } else if (detailsPage) { - // the image has been deleted - detailsPage.close(); } + detailsPage.close(); }); }); diff --git a/packages/renderer/src/lib/image/image-utils.ts b/packages/renderer/src/lib/image/image-utils.ts index d6eeb63e8b04f..75ec7f6adc4b6 100644 --- a/packages/renderer/src/lib/image/image-utils.ts +++ b/packages/renderer/src/lib/image/image-utils.ts @@ -126,12 +126,8 @@ export class ImageUtils { } } - getImageInfoUI(imageInfo: ImageInfo, base64RepoTag: string): ImageInfoUI { + getImageInfoUI(imageInfo: ImageInfo, base64RepoTag: string): ImageInfoUI | undefined { const images = this.getImagesInfoUI(imageInfo, []); - const matchingImages = images.filter(image => image.base64RepoTag === base64RepoTag); - if (matchingImages.length === 1) { - return matchingImages[0]; - } - throw new Error(`Unable to find a matching image for id ${imageInfo.Id} and tag ${base64RepoTag}`); + return images.find(image => image.base64RepoTag === base64RepoTag); } }