diff --git a/components/admin/AdminMarkdownEditor.vue b/components/admin/AdminMarkdownEditor.vue index 7c439f9..b698145 100644 --- a/components/admin/AdminMarkdownEditor.vue +++ b/components/admin/AdminMarkdownEditor.vue @@ -2747,6 +2747,10 @@ defineExpose({ * @returns {void} */ const closeMediaPicker = () => { + if (isUploading.value) { + return + } + isMediaPickerOpen.value = false selectedMediaUrls.value = [] activeMediaPickerTab.value = 'library' @@ -2999,7 +3003,7 @@ const handleFileInput = async (event, target) => { } /** - * 미디어 모달 업로드 탭에서 파일을 삽입한다. + * 미디어 모달 업로드 탭에서 파일을 업로드하고 라이브러리 목록을 갱신한다. * @param {FileList|Array} files - 업로드 파일 목록 * @returns {Promise} */ @@ -3008,10 +3012,6 @@ const uploadFromMediaModal = async (files) => { return } - const target = mediaPickerTarget.value === 'gallery' || mediaPickerTarget.value === 'active-gallery' - ? 'gallery' - : mediaPickerTarget.value - isUploading.value = true try { @@ -3020,8 +3020,10 @@ const uploadFromMediaModal = async (files) => { ...uploadedFiles, ...mediaItems.value ]) - insertSelectedMediaItems(target === 'gallery' ? uploadedFiles : uploadedFiles.slice(0, 1)) - closeMediaPicker() + selectedMediaUrls.value = [] + activeMediaPickerTab.value = 'library' + mediaSearchQuery.value = '' + showToast('success', '업로드가 완료되었습니다. 목록에서 파일을 선택해 삽입해 주세요.') } catch (error) { showToast('error', resolveUploadFetchErrorMessage(error)) } finally { @@ -3360,7 +3362,12 @@ const handleKeydown = (event) => { {{ selectedMediaUrls.length }}개 선택됨

- @@ -3483,13 +3490,18 @@ const handleKeydown = (event) => {