글쓰기 되돌리기와 미디어 관리 보정

This commit is contained in:
2026-06-17 10:12:24 +09:00
parent d41cb71d40
commit 11f8402cb6
12 changed files with 141 additions and 32 deletions

View File

@@ -101,6 +101,10 @@ const getMediaBadgeLabel = (item) => {
return '회원'
}
if (activeTab.value === 'postThumbnails' && item?.thumbnailStatus?.role === 'card') {
return ''
}
if (item?.thumbnailStatus?.role === 'card') {
return '카드'
}
@@ -357,12 +361,16 @@ const filteredMediaItems = computed(() => {
const filteredMediaUrls = computed(() => filteredMediaItems.value.map((item) => item.url))
const filteredSelectableMediaItems = computed(() => filteredMediaItems.value.filter((item) => !isMediaItemLocked(item)))
const filteredSelectableMediaUrls = computed(() => filteredSelectableMediaItems.value.map((item) => item.url))
const isAllFilteredMediaSelected = computed(() => {
if (!filteredMediaUrls.value.length) {
if (!filteredSelectableMediaUrls.value.length) {
return false
}
return filteredMediaUrls.value.every((url) => selectedMediaUrls.value.includes(url))
return filteredSelectableMediaUrls.value.every((url) => selectedMediaUrls.value.includes(url))
})
const selectedDeletableMediaItems = computed(() => {
@@ -460,12 +468,12 @@ const clearMediaSelection = () => {
* @returns {void}
*/
const toggleFilteredMediaSelection = () => {
if (!filteredMediaUrls.value.length) {
if (!filteredSelectableMediaUrls.value.length) {
return
}
if (isAllFilteredMediaSelected.value) {
const filteredUrlSet = new Set(filteredMediaUrls.value)
const filteredUrlSet = new Set(filteredSelectableMediaUrls.value)
selectedMediaUrls.value = selectedMediaUrls.value.filter((url) => !filteredUrlSet.has(url))
lastSelectedIndex.value = -1
return
@@ -473,7 +481,7 @@ const toggleFilteredMediaSelection = () => {
selectedMediaUrls.value = [...new Set([
...selectedMediaUrls.value,
...filteredMediaUrls.value
...filteredSelectableMediaUrls.value
])]
lastSelectedIndex.value = filteredMediaItems.value.length - 1
}
@@ -1117,6 +1125,7 @@ watch(filteredMediaUrls, (urls) => {
class="admin-media__select-all rounded border border-line bg-white px-3 py-2 text-xs font-semibold text-ink transition hover:border-[#c8ced3] disabled:cursor-not-allowed disabled:opacity-50"
type="button"
:aria-pressed="isAllFilteredMediaSelected"
:disabled="!filteredSelectableMediaUrls.length"
@click="toggleFilteredMediaSelection"
>
{{ isAllFilteredMediaSelected ? '전체 해제' : '전체 선택' }}