-
Notifications
You must be signed in to change notification settings - Fork 3
feat: search 기능 및 페이지 완성 #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
czmcm5
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
히스토리가 생겼군요! 멋집니다 💪
| </ResultsHeader> | ||
|
|
||
| {isLoading ? ( | ||
| renderLoadingState() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
renderLoadingState는 왜 이런식으로 구현되어있는지 여쭐 수 있을까요? 😀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컴포넌트로 빼는건데 그런식으로 이름이 지어졌네요..👀
수정하겠습니다 감사합니다 🙇
| </EmptyState> | ||
| )} | ||
|
|
||
| {isError && ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isLoading 검사식부터 , !isLoading && !isError && projects.length === 0, isError 는 서로 겹침이 없이 랜더되는 것으로 보이는데 맞을까요?
이 부분은 묶어서 return하는 편이 모든 3가지의 경우를 일일히 검사하지 않아도 되고 가독성 측면에서도 더 좋아보입니다 😇
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
맞습니다! 해당 사항 포함해서 다시 올리겠습니다 🙇 감사합니다!!
namee-h
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
엄청 열일하셨네요! ㅎㅎ 짱이에욥! 👍
개요
프로젝트 검색 기능의 전반적인 사용자 경험을 개선하고, 검색 히스토리 기능을 추가하며, 코드 구조를 체계적으로 리팩토링했습니다. 특히 모바일 환경에서의 사용성을 크게 향상시키고, 코드베이스의 가독성과 유지보수성을 대폭 개선했습니다.
변경 사항
구현 내용
🚀 새로운 기능
🎨 UI/UX 개선
🔧 기술적 개선
📁 코드 구조 리팩토링
getFilteredProjectLists.ts→projectSearchApi.tsuseGetFilteredProjectLists.ts→useProjectSearchQueries.tssearchFormConfig.ts,searchConstants.ts,searchQueryBuilder.tsgetFilteredProjectCount→getProjectsCountgetFilteredProjectsByPage→getProjectsByPageSearchFilterBuilder→SearchQueryBuilder개발 후기 및 개선사항
이번 작업에서 배운 점
$prefix 대신shouldForwardProp을 사용한 올바른 props 필터링 방법어려웠던 점 / 에로사항
다음에 개선하고 싶은 점
팀원들과 공유하고 싶은 팁
useStore((state) => computed_value)패턴으로 계산된 값도 reactive하게 만들 수 있음useMediaQuery와 조건부 props로 모바일/데스크톱 다른 사이즈 적용 가능animationDelay: \${index * 0.1}s`` 패턴으로 순차적 애니메이션 간편 구현getInitialState패턴으로 새로고침 시에도 상태 유지 가능data-*속성과closest()메서드로 복잡한 포커스 로직 간단히 구현shouldForwardProp으로 DOM에 전달되지 않아야 할 props 필터링enabled조건 대신 기본 필터 값 설정으로 더 자연스러운 UX 제공코드 품질 개선 성과