From 2fba8269008c92692ab5d12ae5bbc3ee1a318058 Mon Sep 17 00:00:00 2001 From: zenn Date: Tue, 31 Mar 2026 17:07:21 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A6=B4=EB=A6=AC=EC=8A=A4:=20v1.2.72=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=ED=97=88=EB=B8=8C=20=EB=B3=B4=EA=B8=B0=20?= =?UTF-8?q?=EC=A0=84=ED=99=98=EA=B3=BC=20=EC=B9=B4=EB=93=9C=20=EB=B3=B4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/update.md | 4 ++ frontend/src/App.vue | 38 ++++++++++++++++++ frontend/src/views/GameHubView.vue | 64 ++++++++++++++++++++++-------- 3 files changed, 89 insertions(+), 17 deletions(-) diff --git a/docs/update.md b/docs/update.md index e5582fa..0c5af41 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,5 +1,9 @@ # 업데이트 로그 +## 2026-03-31 v1.2.72 +- 게임 허브 공개 티어표 목록은 카드 폭과 제목/메타 줄 계산을 다시 조정해, 브라우저 폭에 따라 썸네일과 정보가 카드 밖으로 넘치던 레이아웃 깨짐을 보정함. +- 상단 워크스페이스 헤더에 grid/list 보기 토글을 추가하고, 게임 허브는 그리드 카드형과 가로 리스트형을 즉시 전환해 볼 수 있도록 확장함. + ## 2026-03-31 v1.2.71 - 게임 허브 공개 티어표 카드는 자동 폭 그리드와 2줄 제목/유연한 메타 배치로 보정해, 브라우저 폭이 줄어들어도 썸네일과 텍스트가 카드 밖으로 넘치지 않도록 정리함. - 공개 티어표 상세에서는 다른 사용자의 티어표를 복사해 내 작업본으로 가져오는 기능을 추가하고, 복사본에는 원본 제목/작성자 정보를 작은 출처 메모로 남기도록 확장함. diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 854268d..4b764d8 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -55,6 +55,8 @@ const leftNavItems = computed(() => { return items.filter((item) => !item.requiresAuth || auth.user) }) const showRightRailAction = computed(() => false) +const showGameHubViewToggle = computed(() => route.name === 'gameHub') +const gameHubViewMode = computed(() => (route.query.view === 'list' ? 'list' : 'grid')) const leftBottomPrimaryAction = computed(() => { if (route.name === 'home' && auth.user) { return { label: '커스텀 티어표 만들기', to: '/editor/freeform/new' } @@ -242,6 +244,14 @@ function toggleRightRail() { } } +function setGameHubViewMode(mode) { + if (route.name !== 'gameHub') return + const nextQuery = { ...route.query } + if (mode === 'list') nextQuery.view = 'list' + else delete nextQuery.view + router.replace({ path: route.path, query: nextQuery }) +} + function openCollapsedSearch() { if (!leftRailCollapsed.value || isMobileLayout.value) return isCollapsedSearchOpen.value = true @@ -353,6 +363,14 @@ function submitGlobalSearch() { by zenn
+
+ + +
@@ -853,6 +871,26 @@ function submitGlobalSearch() { flex-wrap: wrap; } +.viewToggle { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 4px; + border-radius: 14px; + background: rgba(255, 255, 255, 0.04); +} + +.viewToggle .ghostIcon--iconOnly { + width: 36px; + height: 36px; + min-width: 36px; + border-radius: 10px; +} + +.ghostIcon--active { + background: rgba(255, 255, 255, 0.08); +} + .workspaceBody { min-height: 0; padding: 18px 18px 32px; diff --git a/frontend/src/views/GameHubView.vue b/frontend/src/views/GameHubView.vue index 440f931..24691ab 100644 --- a/frontend/src/views/GameHubView.vue +++ b/frontend/src/views/GameHubView.vue @@ -15,6 +15,7 @@ const gameName = ref('') const tierLists = ref([]) const error = ref('') const query = ref('') +const isListView = computed(() => route.query.view === 'list') function fmt(ts) { return new Date(ts).toLocaleDateString(undefined, { @@ -96,9 +97,9 @@ function submitSearch() {
아직 공개 티어표가 없어요.
-
-
-