refine transfer queue layout

This commit is contained in:
jxxghp
2026-06-30 12:07:36 +08:00
parent faadf39b80
commit 92bf1ca790
+26 -25
View File
@@ -327,7 +327,7 @@ onUnmounted(() => {
<VIcon icon="mdi-menu" color="primary" size="28" /> <VIcon icon="mdi-menu" color="primary" size="28" />
</template> </template>
<VCardTitle>{{ t('dialog.transferQueue.title') }}</VCardTitle> <VCardTitle>{{ t('dialog.transferQueue.title') }}</VCardTitle>
<VCardSubtitle v-if="dataList.length > 0" class="mt-1"> <VCardSubtitle v-if="dataList.length > 0" class="transfer-queue-header__subtitle">
{{ {{
t('dialog.transferQueue.queueSummary', { t('dialog.transferQueue.queueSummary', {
media: mediaTaskGroups.length, media: mediaTaskGroups.length,
@@ -482,22 +482,26 @@ onUnmounted(() => {
</section> </section>
</div> </div>
</VCardText> </VCardText>
<VCardActions v-if="dataList.length > 0" class="transfer-queue-actions app-dialog-actions">
<VSpacer />
<VBtn variant="outlined" color="secondary" @click="emit('close')">
{{ t('dialog.transferQueue.close') }}
</VBtn>
</VCardActions>
</VCard> </VCard>
</VDialog> </VDialog>
</template> </template>
<style scoped> <style scoped>
.transfer-queue-header { .transfer-queue-header {
padding-block: 0.5rem !important;
padding-inline-end: 4rem; padding-inline-end: 4rem;
} }
.transfer-queue-header :deep(.v-card-title) {
font-size: 1.1rem;
line-height: 1.3;
}
.transfer-queue-header__subtitle {
line-height: 1.25;
margin-block-start: 0.1rem;
}
.transfer-queue-content { .transfer-queue-content {
display: flex; display: flex;
overflow: hidden; overflow: hidden;
@@ -554,9 +558,13 @@ onUnmounted(() => {
} }
.media-selector { .media-selector {
display: flex;
overflow-y: auto; overflow-y: auto;
border-inline-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); border-inline-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity));
padding-inline-end: 1rem; flex-direction: column;
gap: 0.75rem;
padding-block: 0.25rem;
padding-inline: 0.25rem 1rem;
scrollbar-width: none; scrollbar-width: none;
} }
@@ -577,17 +585,18 @@ onUnmounted(() => {
} }
.media-selector__item + .media-selector__item { .media-selector__item + .media-selector__item {
border-block-start: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); border-block-start: 0;
} }
.media-selector__item::before { .media-selector__item::before {
position: absolute; position: absolute;
border-radius: var(--app-vuetify-rounded-pill);
background: rgb(var(--v-theme-primary)); background: rgb(var(--v-theme-primary));
block-size: 0; block-size: 0;
content: ''; content: '';
inline-size: 3px; inline-size: 3px;
inset-block-start: 50%; inset-block-start: 50%;
inset-inline-start: 0; inset-inline-start: 0.25rem;
transition: block-size 0.18s ease, inset-block-start 0.18s ease; transition: block-size 0.18s ease, inset-block-start 0.18s ease;
} }
@@ -600,8 +609,8 @@ onUnmounted(() => {
} }
.media-selector__item--active::before { .media-selector__item--active::before {
block-size: 100%; block-size: calc(100% - 1rem);
inset-block-start: 0; inset-block-start: 0.5rem;
} }
.media-selector__poster, .media-selector__poster,
@@ -751,10 +760,6 @@ onUnmounted(() => {
justify-self: end; justify-self: end;
} }
.transfer-queue-actions {
border-block-start: 1px solid rgba(var(--v-border-color), var(--v-border-opacity));
}
.transfer-queue-empty { .transfer-queue-empty {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -788,7 +793,7 @@ onUnmounted(() => {
@media (width <= 959.98px) { @media (width <= 959.98px) {
.transfer-queue-header { .transfer-queue-header {
flex: 0 0 auto; flex: 0 0 auto;
padding-block: calc(0.75rem + env(safe-area-inset-top)) 0.75rem; padding-block: calc(0.5rem + env(safe-area-inset-top)) 0.5rem !important;
padding-inline: 1rem 3.75rem; padding-inline: 1rem 3.75rem;
} }
@@ -822,14 +827,14 @@ onUnmounted(() => {
} }
.media-selector { .media-selector {
display: flex;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
border-inline-end: 0; border-inline-end: 0;
flex-direction: row;
gap: 0.75rem; gap: 0.75rem;
margin-inline: -1rem; margin-inline: -1rem;
padding-block: 0.25rem 0.75rem; padding-block: 0.5rem 1rem;
padding-inline: 1rem; padding-inline: 1.25rem;
scroll-snap-type: inline mandatory; scroll-snap-type: inline mandatory;
} }
@@ -946,10 +951,6 @@ onUnmounted(() => {
align-self: start; align-self: start;
margin-block-start: -0.35rem; margin-block-start: -0.35rem;
} }
.transfer-queue-actions {
display: none;
}
} }
@media (width <= 600px) { @media (width <= 600px) {