From f7644661998215ff0342d6dc08cfee42a709a1c9 Mon Sep 17 00:00:00 2001 From: James Collins Date: Thu, 28 Sep 2023 10:06:53 +1000 Subject: [PATCH] ensure duplicate media items are not readded --- resources/js/components/dialogs/SMDialogMedia.vue | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/resources/js/components/dialogs/SMDialogMedia.vue b/resources/js/components/dialogs/SMDialogMedia.vue index 5b2b66b..56a3e12 100644 --- a/resources/js/components/dialogs/SMDialogMedia.vue +++ b/resources/js/components/dialogs/SMDialogMedia.vue @@ -1227,7 +1227,7 @@ const handleLoad = async () => { // ); totalItems.value = data.total; - mediaItems.value.push(...data.media); + addMediaItems(data.media); } }) .catch(() => { @@ -1582,10 +1582,20 @@ const loadInitial = () => { totalItems.value = selected.value.length; if (selected.value.length > 0) { - mediaItems.value.push(...selected.value); + addMediaItems(selected.value); } }; +/** + * Add Media items to Media List in dialog + * @param {Array} items The media items to add + */ +const addMediaItems = (items: Array) => { + const existingIds = mediaItems.value.map((item) => item.id); + const uniqueMedia = items.filter((item) => !existingIds.includes(item.id)); + mediaItems.value.push(...uniqueMedia); +}; + // Get max upload size api.get({ url: "",