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: "",