diff --git a/resources/js/components/SMImageGallery.vue b/resources/js/components/SMImageGallery.vue index e11adfc..e033545 100644 --- a/resources/js/components/SMImageGallery.vue +++ b/resources/js/components/SMImageGallery.vue @@ -165,6 +165,7 @@ const handleAddToGallery = async () => { let result = await openDialog(SMDialogMedia, { allowUpload: true, multiple: true, + initial: props.modelValue, }); if (result) { diff --git a/resources/js/components/dialogs/SMDialogMedia.vue b/resources/js/components/dialogs/SMDialogMedia.vue index 5f99436..d990705 100644 --- a/resources/js/components/dialogs/SMDialogMedia.vue +++ b/resources/js/components/dialogs/SMDialogMedia.vue @@ -478,6 +478,11 @@ const props = defineProps({ default: false, required: false, }, + initial: { + type: [Array, Object], + default: () => [], + required: false, + }, }); /** @@ -1135,6 +1140,20 @@ const forceUpdate = () => { formLoading.value = false; }; +/** + * Load initial items + */ +const loadInitial = () => { + selected.value = Array.isArray(props.initial) + ? props.initial + : [props.initial]; + + totalItems.value = selected.value.length; + if (selected.value.length > 0) { + mediaItems.value.push(...selected.value); + } +}; + // Get max upload size api.get({ url: "", @@ -1152,6 +1171,7 @@ api.get({ /* empty */ }); +loadInitial(); handleLoad();