에디터 미디어 선택 대상 계산 분리
This commit is contained in:
@@ -22,14 +22,18 @@ import {
|
||||
getEditorHistoryEntryValue
|
||||
} from '../../lib/markdown-editor-history.js'
|
||||
import {
|
||||
buildMediaPickerUploadHint,
|
||||
buildMediaPickerPageItems,
|
||||
buildMediaPickerRangeLabel,
|
||||
createMediaBlockMarkdown,
|
||||
createDefaultMediaPickerPagination,
|
||||
findUploadSizeLimitError,
|
||||
getMediaPickerAcceptForTarget,
|
||||
getMediaPickerKindForTarget,
|
||||
getGallerySelectionOrder as getGallerySelectionOrderFromSelection,
|
||||
getMediaItemKind,
|
||||
getMediaPickerPreviewUrl,
|
||||
isGalleryMediaPickerTarget,
|
||||
isMediaItemSelectableForTarget,
|
||||
isUploadFileAllowedForMediaTarget,
|
||||
normalizeMediaPickerResponse,
|
||||
@@ -54,7 +58,6 @@ import {
|
||||
buildDefaultUploadSizeLimits,
|
||||
DEFAULT_UPLOAD_MAX_FILE_COUNT,
|
||||
DEFAULT_UPLOAD_MAX_TOTAL_SIZE,
|
||||
formatUploadSizeLimit,
|
||||
normalizeUploadMaxFileCount,
|
||||
normalizeUploadMaxTotalSize
|
||||
} from '../../lib/upload-size-limit.js'
|
||||
@@ -164,33 +167,9 @@ const editorRedoStack = ref([])
|
||||
const isRestoringEditorHistory = ref(false)
|
||||
/** 마지막 히스토리 기록 시각 */
|
||||
let lastEditorHistoryRecordAt = 0
|
||||
const mediaPickerAccept = computed(() => {
|
||||
if (['image', 'gallery', 'active-gallery'].includes(mediaPickerTarget.value)) {
|
||||
return 'image/*'
|
||||
}
|
||||
const mediaPickerAccept = computed(() => getMediaPickerAcceptForTarget(mediaPickerTarget.value))
|
||||
|
||||
if (mediaPickerTarget.value === 'video') {
|
||||
return 'video/*'
|
||||
}
|
||||
|
||||
if (mediaPickerTarget.value === 'audio') {
|
||||
return 'audio/*'
|
||||
}
|
||||
|
||||
return '.pdf,.zip,.txt,.csv,.docx,.xlsx,.pptx'
|
||||
})
|
||||
|
||||
const mediaPickerKind = computed(() => {
|
||||
if (['image', 'gallery', 'active-gallery'].includes(mediaPickerTarget.value)) {
|
||||
return 'image'
|
||||
}
|
||||
|
||||
if (['video', 'audio', 'file'].includes(mediaPickerTarget.value)) {
|
||||
return mediaPickerTarget.value
|
||||
}
|
||||
|
||||
return 'all'
|
||||
})
|
||||
const mediaPickerKind = computed(() => getMediaPickerKindForTarget(mediaPickerTarget.value))
|
||||
|
||||
/** 작성 textarea 최소 높이(px) */
|
||||
const MIN_TEXTAREA_HEIGHT_PX = 620
|
||||
@@ -3393,32 +3372,16 @@ const mediaPickerTitle = computed(() => {
|
||||
* 미디어 모달에서 다중 선택 여부를 반환한다.
|
||||
* @returns {boolean} 다중 선택 여부
|
||||
*/
|
||||
const isGalleryMediaPicker = computed(() => mediaPickerTarget.value === 'gallery'
|
||||
|| mediaPickerTarget.value === 'active-gallery')
|
||||
const isGalleryMediaPicker = computed(() => isGalleryMediaPickerTarget(mediaPickerTarget.value))
|
||||
|
||||
/**
|
||||
* 미디어 업로드 안내 문구를 반환한다.
|
||||
* @returns {string} 안내 문구
|
||||
*/
|
||||
const mediaPickerUploadHint = computed(() => {
|
||||
if (isGalleryMediaPicker.value) {
|
||||
return `여러 이미지를 한 번에 선택할 수 있습니다. (최대 ${formatUploadSizeLimit(uploadSizeLimits.value.image)})`
|
||||
}
|
||||
|
||||
if (mediaPickerTarget.value === 'video') {
|
||||
return `MP4, WebM, MOV 비디오를 업로드할 수 있습니다. (최대 ${formatUploadSizeLimit(uploadSizeLimits.value.video)})`
|
||||
}
|
||||
|
||||
if (mediaPickerTarget.value === 'audio') {
|
||||
return `MP3, WAV, OGG, M4A 오디오를 업로드할 수 있습니다. (최대 ${formatUploadSizeLimit(uploadSizeLimits.value.audio)})`
|
||||
}
|
||||
|
||||
if (mediaPickerTarget.value === 'file') {
|
||||
return `PDF, ZIP, 문서 파일을 업로드할 수 있습니다. (최대 ${formatUploadSizeLimit(uploadSizeLimits.value.document)})`
|
||||
}
|
||||
|
||||
return `단일 이미지가 본문에 삽입됩니다. (최대 ${formatUploadSizeLimit(uploadSizeLimits.value.image)})`
|
||||
})
|
||||
const mediaPickerUploadHint = computed(() => buildMediaPickerUploadHint(
|
||||
mediaPickerTarget.value,
|
||||
uploadSizeLimits.value
|
||||
))
|
||||
|
||||
/**
|
||||
* 붙여넣은 이미지 파일을 업로드한다.
|
||||
|
||||
Reference in New Issue
Block a user