임동욱 임동욱 09-03
fix: 검색 대상이 빈 화면에서 주소 조립이 죽던 문제
앞선 수정이 쿼리 파서만 고치고 주소 조립부를 빼놨다. 목록 하단 페이지 링크를 만들 때
`BOARD_SEARCH_FIELDS[boardType][0].value`를 읽어 1:1문의에서 터졌고, 콘텐츠 쪽에도
같은 줄이 있었다.

두 곳 다 기본값을 옵셔널로 읽고, 검색 대상이 비어 있으면 주소에 싣지 않는다.

Co-Authored-By: Claude Opus 5 
@131b2e931c4f0bd2c8548c5b7f7a8551301d1322
lib/domain/board-post-query.ts
--- lib/domain/board-post-query.ts
+++ lib/domain/board-post-query.ts
@@ -195,7 +195,9 @@
   if (merged.type) params.set('type', merged.type);
   if (merged.visibility) params.set('visibility', merged.visibility);
   if (merged.answered) params.set('answered', merged.answered);
-  if (merged.searchField !== BOARD_SEARCH_FIELDS[boardType][0].value) {
+  // 검색 대상이 없는 화면(1:1문의)은 기본값도 없다 — 그때는 주소에 싣지 않는다.
+  const defaultSearchField = BOARD_SEARCH_FIELDS[boardType][0]?.value ?? '';
+  if (merged.searchField && merged.searchField !== defaultSearchField) {
     params.set('searchField', merged.searchField);
   }
   if (merged.keyword) params.set('keyword', merged.keyword);
lib/domain/content-query.ts
--- lib/domain/content-query.ts
+++ lib/domain/content-query.ts
@@ -136,12 +136,13 @@
 ): string {
   const merged = { ...query, ...overrides };
   const params = new URLSearchParams();
-  const defaultField = CONTENT_SEARCH_FIELDS[kind][0].value;
+  // 검색 대상이 없는 화면(금융OX퀴즈)은 기본값도 없다 — 그때는 주소에 싣지 않는다.
+  const defaultField = CONTENT_SEARCH_FIELDS[kind][0]?.value ?? '';
 
   if (merged.school) params.set('school', merged.school);
   if (merged.grade) params.set('grade', merged.grade);
   if (merged.level) params.set('level', merged.level);
-  if (merged.searchField !== defaultField) {
+  if (merged.searchField && merged.searchField !== defaultField) {
     params.set('searchField', merged.searchField);
   }
   if (merged.keyword) params.set('keyword', merged.keyword);
Add a comment
List