[포트폴리오-1] 자유게시판 검색 기능 추가

2024. 2. 20. 14:33

키워드 검색 기능

  • 검색하고 싶은 키워드를 입력하면 등록된 게시물들의 제목에서 키워드가 포함된 게시물을 찾아줍니다.
  • 검색된 제목에 키워드가 강조되어 나타납니다.

 

presenter 부분

 

container 부분

키워드 검색 기능 추가를 위해 searchWord state와 isSearchWord state를 추가했습니다.

 

onChangeSearchWordInput 함수와 onClickSearchButton 함수

onChangeSearchWordInput 함수로 input 태그로 들어온 키워드를 searchWord state에 저장합니다.

onClickSearchButton을 클릭하면 키워드가 포함된 게시물들을 fetch합니다.

 

키워드 검색인 경우 isSearchWord state 값을 true로 변경합니다.

 

키워드 검색 시 제목에서 키워드 강조

isSearchWord state가 true일 때만 키워드를 강조합니다.

검색 버튼을 누르기 전에 키워드가 강조되는 일이 없도록 했습니다.

 


 

날짜 검색 기능

  • 기간을 입력하면 기간 내에 작성된 게시물들이 검색됩니다.

 

presenter 부분

 

searchDate state

날짜 검색 기능을 구현하기 위해 searchDate state를 추가했습니다.

 

onChangeSearchDateInput 함수와 onClickSearchButton 함수

onChangeSearchDateInput 함수를 통해 input 태그에 입력된 날짜를 "YYYY-MM-DD" 형식으로 변경해줍니다.

"~"를 구분자로 해서 나눈 뒤 searchDate state에 저장합니다.

 

onClickSearchButton 함수가 실행되면 입력된 날짜들 사이에 등록된 게시물들을 fetch해옵니다.

 

 

(02/21 추가)

Boards presenter에서의 SearchBar 컴포넌트

재사용성을 고려해서 검색창 컴포넌트를 분리했습니다.

이전 기능은 그대로 유지됩니다.

 


 

페이지네이션

  • 키워드 검색시 키워드가 제목에 포함된 게시물의 총 개수가 페이지네이션에 적용됩니다.

 

페이지네이션

  • 날짜 검색도 동일하게 동작합니다.

 

refetchBoardsCount

기존의 게시물 개수를 가져오는 쿼리에서 refetch를 사용합니다.

 

props를 통해 받은 refetch

refetch는 props를 통해 검색창 컴포넌트로 전달됩니다.

 

refetch

검색창에서 검색 버튼을 클릭하면 refetch가 동작하여 게시물 개수가 변경됩니다.

 

 

BELATED ARTICLES

more