릴리스: v0.1.38 아이템 이름 수정과 티어표 썸네일 추가

This commit is contained in:
2026-03-26 18:14:54 +09:00
parent f729b6fa82
commit 5d778e9c20
14 changed files with 293 additions and 22 deletions

View File

@@ -30,6 +30,10 @@ function avatarFallbackOf(tierList) {
return (tierList.authorAccountName || 'u').trim().charAt(0).toUpperCase() || '?'
}
function tierListThumbnailUrl(tierList) {
return tierList.thumbnailSrc ? toApiUrl(tierList.thumbnailSrc) : ''
}
onMounted(async () => {
try {
const data = await api.listMyTierLists()
@@ -68,6 +72,10 @@ async function removeList(t) {
<div v-else class="list">
<article v-for="t in myLists" :key="t.id" class="row">
<button class="row__body" @click="openList(t)">
<div class="row__thumbWrap">
<img v-if="tierListThumbnailUrl(t)" class="row__thumb" :src="tierListThumbnailUrl(t)" :alt="t.title" />
<div v-else class="row__thumbPlaceholder"></div>
</div>
<div class="row__head">
<div class="row__title">{{ t.title }}</div>
<div class="row__author">
@@ -125,18 +133,17 @@ async function removeList(t) {
}
.list {
display: grid;
gap: 10px;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
}
.row {
display: flex;
display: grid;
gap: 10px;
justify-content: space-between;
align-items: center;
padding: 12px 14px;
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.10);
background: rgba(0, 0, 0, 0.16);
color: rgba(255, 255, 255, 0.92);
overflow: hidden;
}
.row__body {
flex: 1 1 auto;
@@ -147,12 +154,32 @@ async function removeList(t) {
background: transparent;
color: inherit;
padding: 0;
display: grid;
gap: 10px;
}
.row__thumbWrap {
width: 100%;
aspect-ratio: 16 / 9;
background: rgba(255, 255, 255, 0.03);
}
.row__thumb {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.row__thumbPlaceholder {
width: 100%;
height: 100%;
background:
linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
}
.row__title {
font-weight: 900;
min-width: 0;
}
.row__head {
padding: 0 14px;
display: flex;
gap: 12px;
align-items: center;
@@ -181,6 +208,7 @@ async function removeList(t) {
font-weight: 900;
}
.row__meta {
padding: 0 14px;
margin-top: 6px;
opacity: 0.76;
font-size: 13px;
@@ -188,5 +216,16 @@ async function removeList(t) {
.link--danger {
background: rgba(239, 68, 68, 0.14);
border-color: rgba(239, 68, 68, 0.28);
margin: 0 14px 14px;
}
@media (max-width: 1100px) {
.list {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 720px) {
.list {
grid-template-columns: 1fr;
}
}
</style>