게시글 미디어와 편집 표시 개선 v1.7.8
This commit is contained in:
@@ -79,7 +79,7 @@ const isMediaPickerOpen = ref(false)
|
||||
const isLoadingMedia = ref(false)
|
||||
const isUploading = ref(false)
|
||||
const mediaPickerTarget = ref('image')
|
||||
const activeMediaPickerTab = ref('library')
|
||||
const activeMediaPickerTab = ref('upload')
|
||||
const mediaSearchQuery = ref('')
|
||||
const selectedMediaUrls = ref([])
|
||||
const lastSelectionState = ref({
|
||||
@@ -3050,7 +3050,7 @@ const openMediaPicker = async (target) => {
|
||||
}
|
||||
|
||||
mediaPickerTarget.value = target
|
||||
activeMediaPickerTab.value = 'library'
|
||||
activeMediaPickerTab.value = 'upload'
|
||||
mediaSearchQuery.value = ''
|
||||
selectedMediaUrls.value = []
|
||||
isMediaPickerOpen.value = true
|
||||
@@ -3088,7 +3088,7 @@ const closeMediaPicker = () => {
|
||||
|
||||
isMediaPickerOpen.value = false
|
||||
selectedMediaUrls.value = []
|
||||
activeMediaPickerTab.value = 'library'
|
||||
activeMediaPickerTab.value = 'upload'
|
||||
mediaSearchQuery.value = ''
|
||||
liveSlashInsertLine.value = null
|
||||
}
|
||||
@@ -3355,10 +3355,16 @@ const uploadFromMediaModal = async (files) => {
|
||||
...uploadedFiles,
|
||||
...mediaItems.value
|
||||
])
|
||||
selectedMediaUrls.value = []
|
||||
const uploadedUrls = uploadedFiles
|
||||
.filter(isMediaItemSelectableForTarget)
|
||||
.map((file) => file.url)
|
||||
|
||||
selectedMediaUrls.value = isGalleryMediaPicker.value
|
||||
? uploadedUrls
|
||||
: uploadedUrls.slice(0, 1)
|
||||
activeMediaPickerTab.value = 'library'
|
||||
mediaSearchQuery.value = ''
|
||||
showToast('success', '업로드가 완료되었습니다. 목록에서 파일을 선택해 삽입해 주세요.')
|
||||
showToast('success', '업로드가 완료되어 파일이 선택되었습니다.')
|
||||
} catch (error) {
|
||||
showToast('error', resolveUploadFetchErrorMessage(error))
|
||||
} finally {
|
||||
@@ -3708,14 +3714,6 @@ const handleKeydown = (event) => {
|
||||
|
||||
<div class="admin-markdown-editor__media-tabs flex items-center gap-3 border-b border-[#e3e6e8] px-5">
|
||||
<div class="flex min-w-0 flex-1 items-center">
|
||||
<button
|
||||
class="admin-markdown-editor__media-tab border-b-2 px-3 py-3 text-sm font-semibold transition-colors"
|
||||
:class="activeMediaPickerTab === 'library' ? 'border-[#15171a] text-[#15171a]' : 'border-transparent text-[#6b7280] hover:text-[#15171a]'"
|
||||
type="button"
|
||||
@click="activeMediaPickerTab = 'library'"
|
||||
>
|
||||
미디어 라이브러리
|
||||
</button>
|
||||
<button
|
||||
class="admin-markdown-editor__media-tab border-b-2 px-3 py-3 text-sm font-semibold transition-colors"
|
||||
:class="activeMediaPickerTab === 'upload' ? 'border-[#15171a] text-[#15171a]' : 'border-transparent text-[#6b7280] hover:text-[#15171a]'"
|
||||
@@ -3724,8 +3722,16 @@ const handleKeydown = (event) => {
|
||||
>
|
||||
업로드
|
||||
</button>
|
||||
<button
|
||||
class="admin-markdown-editor__media-tab border-b-2 px-3 py-3 text-sm font-semibold transition-colors"
|
||||
:class="activeMediaPickerTab === 'library' ? 'border-[#15171a] text-[#15171a]' : 'border-transparent text-[#6b7280] hover:text-[#15171a]'"
|
||||
type="button"
|
||||
@click="activeMediaPickerTab = 'library'"
|
||||
>
|
||||
미디어 라이브러리
|
||||
</button>
|
||||
</div>
|
||||
<label class="admin-markdown-editor__media-search mb-px flex w-full max-w-xs shrink-0 items-center py-2">
|
||||
<label v-if="activeMediaPickerTab === 'library'" class="admin-markdown-editor__media-search mb-px flex w-full max-w-xs shrink-0 items-center py-2">
|
||||
<span class="sr-only">파일명 검색</span>
|
||||
<input
|
||||
v-model="mediaSearchQuery"
|
||||
|
||||
Reference in New Issue
Block a user