관리자 목록 more vert 메뉴 통일 및 태그 메뉴 정렬 수정
AdminRowMoreMenu 공통 컴포넌트로 글·태그·페이지·미디어·네비게이션 행 액션을 ⋮ 팝오버로 통일. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -30,6 +30,15 @@ const draggingUrls = ref([])
|
||||
|
||||
const { toast, showToast } = useAdminToast()
|
||||
|
||||
const { openMenuId, closeMenu } = useAdminRowMenu()
|
||||
|
||||
/**
|
||||
* 폴더 행 메뉴 id
|
||||
* @param {string} folder - 폴더 경로
|
||||
* @returns {string}
|
||||
*/
|
||||
const getFolderMenuId = (folder) => `folder:${folder}`
|
||||
|
||||
const { data: mediaItems, refresh } = await useFetch('/admin/api/media', {
|
||||
default: () => []
|
||||
})
|
||||
@@ -332,6 +341,8 @@ const submitCreateFolderModal = async () => {
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
const removeMediaFolder = async (folder) => {
|
||||
closeMenu()
|
||||
|
||||
if (!folder || folder === '미분류' || folder === MEDIA_THUMBNAIL_ROOT || folder.startsWith(`${MEDIA_THUMBNAIL_ROOT}/`)) {
|
||||
return
|
||||
}
|
||||
@@ -602,18 +613,26 @@ const deleteMedia = async (item) => {
|
||||
<span class="admin-media__folder-name min-w-0 truncate">{{ getFolderName(folder) }}</span>
|
||||
<span class="admin-media__folder-count shrink-0 text-xs opacity-70">{{ folderMediaCounts[folder] || 0 }}</span>
|
||||
</button>
|
||||
<button
|
||||
<AdminRowMoreMenu
|
||||
v-if="folder !== '미분류' && !isThumbnailFolderPath(folder)"
|
||||
class="admin-media__folder-delete mr-1 inline-flex size-8 shrink-0 items-center justify-center rounded text-current opacity-40 transition hover:opacity-100 hover:text-red-300 disabled:opacity-25"
|
||||
type="button"
|
||||
:disabled="deletingFolder === folder"
|
||||
:aria-label="`${folder} 폴더 삭제`"
|
||||
@click.stop="removeMediaFolder(folder)"
|
||||
v-model:open-menu-id="openMenuId"
|
||||
:item-id="getFolderMenuId(folder)"
|
||||
menu-label="폴더 메뉴"
|
||||
size="sm"
|
||||
class="mr-0.5 shrink-0"
|
||||
:inverse="activeFolder === folder"
|
||||
:busy="deletingFolder === folder"
|
||||
>
|
||||
<svg class="size-4 shrink-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
||||
<path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
class="admin-row-more-menu__item admin-row-more-menu__item--danger"
|
||||
type="button"
|
||||
role="menuitem"
|
||||
:disabled="deletingFolder === folder"
|
||||
@click="removeMediaFolder(folder)"
|
||||
>
|
||||
폴더 삭제
|
||||
</button>
|
||||
</AdminRowMoreMenu>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user