fix: 화면별 액션 아이콘 위치 정리(타이틀 제거 후 빈 헤더 해소)
CI / build (push) Failing after 12m2s

- 가계부: 내역 추가 → month-nav(검색·필터 옆), 헤더는 pending 있을 때만
- 예산: 예산 추가 → month-nav(월 변경 옆)
- 고정지출: 지금 반영/추가 → 안내문구 아래
- 커뮤니티: 글쓰기 → 태그 필터와 같은 줄(list-top)
- 분류 관리: 기본 분류 불러오기 → 지출/수입 탭과 같은 줄(tabs-row)
- 미사용 boardTitle/boardLabel 정리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ByungCheol
2026-06-27 23:18:42 +09:00
parent c4872c93a8
commit 59b17051a4
5 changed files with 56 additions and 37 deletions
+26 -14
View File
@@ -4,7 +4,7 @@ import { useRoute, useRouter } from 'vue-router'
import { boardApi } from '@/api/boardApi'
import { formatRelative } from '@/utils/datetime'
import { useAuthStore } from '@/stores/auth'
import { boardLabel, DEFAULT_BOARD } from '@/constants/boards'
import { DEFAULT_BOARD } from '@/constants/boards'
import IconBtn from '@/components/ui/IconBtn.vue'
const route = useRoute()
@@ -14,7 +14,6 @@ const isAdmin = computed(() => auth.user?.role === 'ADMIN')
// 현재 게시판(카테고리)
const category = computed(() => route.params.category || DEFAULT_BOARD)
const boardTitle = computed(() => boardLabel(category.value))
const posts = ref([])
const tags = ref([])
@@ -128,19 +127,18 @@ onMounted(loadTags)
<template>
<section class="board">
<header class="board-head" style="justify-content: flex-end">
<div class="list-top">
<div class="tag-filter">
<button
v-for="t in tags"
:key="t"
type="button"
class="tag-chip"
:class="{ active: activeTag === t }"
@click="filterByTag(t)"
>{{ t }}</button>
</div>
<IconBtn icon="edit" title="글쓰기" variant="primary" @click="router.push(`/board/${category}/write`)" />
</header>
<div v-if="tags.length" class="tag-filter">
<button
v-for="t in tags"
:key="t"
type="button"
class="tag-chip"
:class="{ active: activeTag === t }"
@click="filterByTag(t)"
>{{ t }}</button>
</div>
<!-- 검색 적용 표시 -->
@@ -247,6 +245,20 @@ button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.list-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.75rem;
margin-bottom: 1rem;
}
.list-top .tag-filter {
flex: 1;
margin-bottom: 0;
}
.list-top > .icon-btn {
flex: none;
}
.tag-filter {
display: flex;
flex-wrap: wrap;