임동욱 임동욱 08-19
fix: 공지사항 툴바를 시안(5227:5066)에 맞춤
두 가지가 어긋나 있었다.

**분류 필터가 탭이었다.** 시안은 `chip-area`에 `chip` 세 개(전체·노출·미노출)다.
`FoxTab`을 `FoxChipArea` + `FoxChip type="action"`으로 바꿨다 — `check` 계열은 켜졌을 때
체크 아이콘이 붙는데, 시안의 "전체"와 "노출"이 둘 다 42px로 같아 아이콘이 없는 계열이다.
초기화 버튼도 시안이 28×28이라 `size="md"`(40)에서 `sm`으로 내렸다.

**검색 대상에 구분이 없었다.** 시안은 닫힌 상태가 "구분"인데 공지사항의 검색 대상이 제목
하나뿐이었다. 구분을 첫 항목으로 넣어 기본값이 되게 하고, 검색값은 코드가 아니라 표기 라벨로
견준다(사용자가 "공통"을 치면 걸리게).

확인: 초기화 버튼 28×28, chip-area x=36, 칩 43/43/56×28, 체크 아이콘 없음, 검색 대상 "구분" —
시안 치수와 1px 안에서 일치한다.

Co-Authored-By: Claude Opus 5 
@9c411383f98ada40e01753229d04a93fa9a83797
app/(protected)/(basic)/boards/_components/board-post-list.tsx
--- app/(protected)/(basic)/boards/_components/board-post-list.tsx
+++ app/(protected)/(basic)/boards/_components/board-post-list.tsx
@@ -6,8 +6,8 @@
 import { FoxIconButton } from '@fox/core/components/fox-icon-button';
 import { FoxListContainer } from '@fox/core/components/fox-list-container';
 import { FoxSelectText } from '@fox/core/components/fox-select-text';
-import { FoxTab } from '@fox/core/components/fox-tab';
-import { FoxTabItem } from '@fox/core/components/fox-tab-item';
+import { FoxChip } from '@fox/core/components/fox-chip';
+import { FoxChipArea } from '@fox/core/components/fox-chip-area';
 import { FoxArrowsClockwiseIcon, FoxPlusIcon } from '@fox/core/icons';
 import type { BoardPost, BoardType } from '@/lib/domain/board-post';
 import {
@@ -116,25 +116,25 @@
           <div className={styles.filter}>
             <FoxIconButton
               type="default"
-              size="md"
+              size="sm"
               icon={<FoxArrowsClockwiseIcon />}
               label="목록 새로고침"
               onAction={() => startRefresh(() => router.refresh())}
             />
-            <FoxTab
-              type="fill"
-              size="md"
-              label="노출 여부"
-              value={query.visibility}
-              onValueChange={(value) => go({ visibility: value })}
-            >
-              <FoxTabItem value={FILTER_ALL}>전체</FoxTabItem>
-              {VISIBILITY_FILTER_OPTIONS.map((option) => (
-                <FoxTabItem key={option.value} value={option.value}>
-                  {option.label}
-                </FoxTabItem>
+            <FoxChipArea size="md" label="노출 여부">
+              {[
+                { value: FILTER_ALL, label: '전체' },
+                ...VISIBILITY_FILTER_OPTIONS,
+              ].map((option) => (
+                <FoxChip
+                  key={option.value || 'all'}
+                  type="action"
+                  label={option.label}
+                  checked={query.visibility === option.value}
+                  onCheckedChange={() => go({ visibility: option.value })}
+                />
               ))}
-            </FoxTab>
+            </FoxChipArea>
           </div>
         }
         page={currentPage}
lib/data/repositories/board-post-repository.ts
--- lib/data/repositories/board-post-repository.ts
+++ lib/data/repositories/board-post-repository.ts
@@ -4,6 +4,7 @@
 import {
   BOARD_SETTING_IDS,
   BOARD_TYPE_CODE_PARAM,
+  formatBoardCategoryLabel,
   type BoardPost,
   type BoardType,
 } from '@/lib/domain/board-post';
@@ -148,6 +149,7 @@
 
 /** 검색 대상 → 비교할 값. 목록·상세에 실제로 보이는 값으로만 거른다. */
 const SEARCH_VALUE_BY_FIELD: Record<string, (post: BoardPost) => string> = {
+  category: (post) => formatBoardCategoryLabel(post.categoryCode),
   title: (post) => post.title,
   content: (post) => post.content,
   authorName: (post) => post.authorName ?? '',
lib/domain/board-post-query.ts
--- lib/domain/board-post-query.ts
+++ lib/domain/board-post-query.ts
@@ -36,7 +36,10 @@
  * 프론트에서 필터링**하기로 해서 시안의 검색 대상을 모두 제공할 수 있다(Repository 주석 참조).
  */
 export const BOARD_SEARCH_FIELDS: Record<BoardType, readonly BoardSearchFieldOption[]> = {
-  notice: [{ value: 'title', label: '제목' }],
+  notice: [
+    { value: 'category', label: '구분' },
+    { value: 'title', label: '제목' },
+  ],
   inquiry: [
     { value: 'title', label: '제목' },
     { value: 'authorName', label: '질문자명' },
Add a comment
List