임동욱 임동욱 09-03
fix: 검색 대상이 비었을 때 목록 화면이 죽던 문제
검색을 감추며 대상 목록을 빈 배열로 만들었는데, 쿼리 파서가 기본값으로 `fields[0].value`를
읽고 있어 금융OX퀴즈 화면이 렌더 중에 터졌다. 1:1문의도 같은 형태였다.

목록이 비면 빈 문자열로 떨어뜨린다 — 검색 상자가 없으니 검색어도 늘 비어 있어 거르는
쪽에는 영향이 없다.

Co-Authored-By: Claude Opus 5 
@cc43f74aeac0696d769dd67f8994434944926571
lib/domain/board-post-query.ts
--- lib/domain/board-post-query.ts
+++ lib/domain/board-post-query.ts
@@ -165,9 +165,10 @@
     answered: fields.answered
       ? readOneOf(searchParams, 'answered', ANSWERED_FILTER_OPTIONS)
       : FILTER_ALL,
+    // 검색 대상이 하나도 없을 수 있다(1:1문의) — 그때는 빈 값이다.
     searchField: searchFields.some((field) => field.value === searchFieldRaw)
       ? searchFieldRaw
-      : searchFields[0].value,
+      : (searchFields[0]?.value ?? ''),
     keyword: (readParam(searchParams, 'keyword') ?? '')
       .trim()
       .slice(0, MAX_KEYWORD_LENGTH),
lib/domain/content-query.ts
--- lib/domain/content-query.ts
+++ lib/domain/content-query.ts
@@ -116,9 +116,10 @@
     school: readParam(searchParams, 'school'),
     grade: readParam(searchParams, 'grade'),
     level: kind === 'quiz' ? readParam(searchParams, 'level') : '',
+    // 검색 대상이 하나도 없을 수 있다(백엔드가 못 거르는 화면은 감춘다) — 그때는 빈 값이다.
     searchField: fields.some((field) => field.value === searchField)
       ? searchField
-      : fields[0].value,
+      : (fields[0]?.value ?? ''),
     keyword: readParam(searchParams, 'keyword').slice(0, MAX_KEYWORD_LENGTH),
     sort: sort === 'modified' ? 'modified' : DEFAULT_CONTENT_SORT,
     page: Number.isInteger(page) && page > 0 ? page : DEFAULT_PAGE,
Add a comment
List