ui: improve modal escape and rail wrapping
This commit is contained in:
@@ -62,6 +62,7 @@ const accountEmail = computed(() => {
|
||||
if (!authReady.value) return '계정 상태를 확인하고 있어요.'
|
||||
return (auth.user?.email || '').trim() || '로그인 후 개인 메뉴를 사용할 수 있어요.'
|
||||
})
|
||||
const isAccountEmailHint = computed(() => !auth.user)
|
||||
const shellStyle = computed(() => ({
|
||||
'--left-rail-width': leftRailCollapsed.value ? '76px' : '248px',
|
||||
'--right-rail-width': !isRightRailOverlay.value && rightRailOpen.value ? '325px' : '0px',
|
||||
@@ -529,7 +530,7 @@ function reloadApp() {
|
||||
<div v-else class="appUserCard__avatar appUserCard__avatar--fallback">{{ accountName[0]?.toUpperCase() || 'U' }}</div>
|
||||
<div class="appUserCard__meta">
|
||||
<div class="appUserCard__name">{{ accountName }}</div>
|
||||
<div class="appUserCard__email">{{ accountEmail }}</div>
|
||||
<div class="appUserCard__email" :class="{ 'appUserCard__email--hint': isAccountEmailHint }">{{ accountEmail }}</div>
|
||||
</div>
|
||||
<button
|
||||
v-if="isMobileLayout"
|
||||
@@ -982,6 +983,7 @@ function reloadApp() {
|
||||
.appUserCard__button,
|
||||
.appUserCard__guest {
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
@@ -1022,6 +1024,7 @@ function reloadApp() {
|
||||
|
||||
.leftRail__mobileMenu {
|
||||
display: grid;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.appUserCard__navToggle {
|
||||
@@ -1042,18 +1045,30 @@ function reloadApp() {
|
||||
.appUserCard__name {
|
||||
font-size: 14px;
|
||||
font-weight: 800;
|
||||
min-width: 0;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
.appUserCard__email {
|
||||
font-size: 12px;
|
||||
color: var(--theme-text-muted);
|
||||
min-width: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.appUserCard__email--hint {
|
||||
white-space: normal;
|
||||
overflow: visible;
|
||||
text-overflow: unset;
|
||||
overflow-wrap: anywhere;
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
.searchStub {
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
|
||||
@@ -419,6 +419,26 @@ function handleAdminPopState() {
|
||||
|
||||
function handleAdminKeydown(event) {
|
||||
if (event.key !== 'Escape') return
|
||||
if (previewModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closePreviewModal()
|
||||
return
|
||||
}
|
||||
if (imageResetModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeImageResetModal()
|
||||
return
|
||||
}
|
||||
if (adminTierListManageModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeAdminTierListManageModal()
|
||||
return
|
||||
}
|
||||
if (templateItemDeleteModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTemplateItemDeleteModal()
|
||||
return
|
||||
}
|
||||
if (customItemDeleteModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeCustomItemDeleteModal()
|
||||
@@ -429,9 +449,55 @@ function handleAdminKeydown(event) {
|
||||
closeCustomItemModal()
|
||||
return
|
||||
}
|
||||
if (previewModalOpen.value) {
|
||||
if (templatePickerModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closePreviewModal()
|
||||
closeTemplatePickerModal()
|
||||
return
|
||||
}
|
||||
if (templateBulkTagModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTemplateBulkTagModal()
|
||||
return
|
||||
}
|
||||
if (templateLibraryItemModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTemplateLibraryItemModal()
|
||||
return
|
||||
}
|
||||
if (templateSourceImportModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTemplateSourceImportModal()
|
||||
return
|
||||
}
|
||||
if (importModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTierListImportModal()
|
||||
return
|
||||
}
|
||||
if (userRoleModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeUserRoleModal()
|
||||
return
|
||||
}
|
||||
if (userDeleteModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeUserDeleteModal()
|
||||
return
|
||||
}
|
||||
if (userPasswordModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeUserPasswordModal()
|
||||
return
|
||||
}
|
||||
if (userEditModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeUserEditModal()
|
||||
return
|
||||
}
|
||||
if (templateCreateModalOpen.value) {
|
||||
event.preventDefault()
|
||||
closeTemplateCreateModal()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user