Feat/#30/job bookmarks page#31
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
Walkthrough추천 레터의 Changes추천 아카이브 및 저장목록
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Browser
participant SavedJobsPage
participant SavedJobsList
participant SavedJobsSavedContent
participant SavedJobsHistoryContent
Browser->>SavedJobsPage: /saved 접근
SavedJobsPage->>SavedJobsList: preview 상태 전달
SavedJobsList->>SavedJobsSavedContent: 저장 탭 콘텐츠 렌더링
SavedJobsList->>SavedJobsHistoryContent: 히스토리 탭 콘텐츠 렌더링
SavedJobsHistoryContent->>SavedJobsHistoryContent: 필터링 및 날짜별 그룹화
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🚦 CI 검증 결과
|
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/components/common/Tab.tsx (1)
43-47: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win활성 탭 상태를 보조기술에 제공하세요.
두 구현 모두 색상과 테두리만으로 선택 상태를 표시하므로 스크린 리더 사용자는 현재 필터를 알 수 없습니다.
src/components/common/Tab.tsx#L43-L47: 버튼에aria-pressed={Boolean(active)}를 추가하세요.src/features/recommendations/components/RecommendationStatusTabs.tsx#L27-L36: 버튼에aria-pressed={active}를 추가하세요.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/components/common/Tab.tsx` around lines 43 - 47, Expose the active tab state to assistive technology by adding aria-pressed={Boolean(active)} to the button in src/components/common/Tab.tsx lines 43-47 and aria-pressed={active} to the button in src/features/recommendations/components/RecommendationStatusTabs.tsx lines 27-36.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/features/recommendations/components/RecommendationFlowContent.tsx`:
- Around line 186-189: Update the RecommendationFlowContent carousel contentKey
to change when filteredLetters or the displayed letter changes, rather than
relying only on displayIndex. Ensure removing the current letter or
transitioning to an empty filtered result refreshes the carousel’s internal
activeContent and renders the correct next or empty state.
In `@src/features/savedJobs/SavedJobsList.tsx`:
- Around line 23-29: 연결되지 않은 목록 액션을 상태와 콜백으로 동작하게 수정하세요.
src/features/savedJobs/SavedJobsList.tsx의 SavedJobsList에서 저장·복원·페이지네이션 상태와
onView/onRemove/onRestore/onLoadMore 콜백을 소유하고 하위 컴포넌트에 전달하세요.
src/features/savedJobs/SavedJobsSavedContent.tsx 35-47의 보기·해제 액션을 연결하되 마감 공고도 해제
가능하게 유지하세요. src/features/savedJobs/SavedJobsHistoryContent.tsx 48-52의 다시 보기·복원
액션을 상세 이동과 상태 전환에 연결하고, 108의 더보기는 다음 페이지가 있을 때만 표시해 로드 콜백을 실행하도록 수정하세요.
- Around line 35-38: Update the summary paragraph in SavedJobsList to derive the
saved-job count from the SAVED_JOBS data instead of hardcoding 12, and calculate
the application-intent count from each job’s corresponding data field. Keep the
summary hidden when the list is empty and preserve the existing Korean label
format.
In `@src/routes/router.tsx`:
- Around line 82-84: 라우터의 `/recommendations/archive` 항목에서 `RecommendationsPage`의
아카이브 화면이 추천 탭으로 표시되도록 `handle.header.activeIndex`를 0으로 변경하세요. 또한 기존
`/recommendations/revisit` 경로가 누락되지 않도록 해당 경로에 `Navigate`를 추가해 새 아카이브 경로로
리다이렉트하세요.
---
Outside diff comments:
In `@src/components/common/Tab.tsx`:
- Around line 43-47: Expose the active tab state to assistive technology by
adding aria-pressed={Boolean(active)} to the button in
src/components/common/Tab.tsx lines 43-47 and aria-pressed={active} to the
button in src/features/recommendations/components/RecommendationStatusTabs.tsx
lines 27-36.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 5c1168ba-ba01-45d1-b740-60edbd0fda0f
📒 Files selected for processing (14)
src/components/common/Tab.tsxsrc/features/recommendations/components/RecommendationCompletion.tsxsrc/features/recommendations/components/RecommendationFlowContent.tsxsrc/features/recommendations/components/RecommendationLetterCard.tsxsrc/features/recommendations/components/RecommendationLetterCarousel.tsxsrc/features/recommendations/components/RecommendationStatusTabs.tsxsrc/features/savedJobs/SavedJobsEmptyState.tsxsrc/features/savedJobs/SavedJobsHistoryContent.tsxsrc/features/savedJobs/SavedJobsList.tsxsrc/features/savedJobs/SavedJobsSavedContent.tsxsrc/features/savedJobs/savedJobsMock.tssrc/pages/SavedJobsPage/SavedJobsPage.tsxsrc/routes/router.tsxsrc/styles/global.css
| export default function SavedJobsList({ isEmptyPreview = false }: SavedJobsListProps) { | ||
| const [activeTab, setActiveTab] = useState<SavedJobsTab>('saved'); | ||
| const [activeFilter, setActiveFilter] = useState<SavedJobHistoryStatus | 'all'>('all'); | ||
| const navigate = useNavigate(); | ||
| const savedJobs = isEmptyPreview ? [] : SAVED_JOBS; | ||
| const handleBrowseRecommendations = () => navigate('/recommendations'); | ||
| const handleExplore = () => navigate('/explore'); |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift
목록 액션을 상태와 콜백으로 연결하세요.
현재 데이터가 불변 목데이터로만 전달되고 액션 콜백이 없어 “보기”, “해제”, “다시 보기”, “저장으로 되돌리기”, “더보기”가 모두 클릭 후 아무 변화가 없습니다.
src/features/savedJobs/SavedJobsList.tsx#L23-L29: 저장·복원·페이지네이션 상태와onView/onRemove/onRestore/onLoadMore콜백을 소유하고 하위 컴포넌트로 전달하세요.src/features/savedJobs/SavedJobsSavedContent.tsx#L35-L47: 보기·해제 버튼에 콜백을 연결하고, 마감 공고도 저장 해제는 가능하도록 유지하세요.src/features/savedJobs/SavedJobsHistoryContent.tsx#L48-L52: 다시 보기와 복원 버튼을 실제 상세 이동·상태 전환에 연결하세요.src/features/savedJobs/SavedJobsHistoryContent.tsx#L108-L108: 다음 페이지가 없으면 버튼을 숨기고, 있으면 로드 동작을 연결하세요.
📍 Affects 3 files
src/features/savedJobs/SavedJobsList.tsx#L23-L29(this comment)src/features/savedJobs/SavedJobsSavedContent.tsx#L35-L47src/features/savedJobs/SavedJobsHistoryContent.tsx#L48-L52src/features/savedJobs/SavedJobsHistoryContent.tsx#L108-L108
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/features/savedJobs/SavedJobsList.tsx` around lines 23 - 29, 연결되지 않은 목록
액션을 상태와 콜백으로 동작하게 수정하세요. src/features/savedJobs/SavedJobsList.tsx의
SavedJobsList에서 저장·복원·페이지네이션 상태와 onView/onRemove/onRestore/onLoadMore 콜백을 소유하고
하위 컴포넌트에 전달하세요. src/features/savedJobs/SavedJobsSavedContent.tsx 35-47의 보기·해제
액션을 연결하되 마감 공고도 해제 가능하게 유지하세요.
src/features/savedJobs/SavedJobsHistoryContent.tsx 48-52의 다시 보기·복원 액션을 상세 이동과 상태
전환에 연결하고, 108의 더보기는 다음 페이지가 있을 때만 표시해 로드 콜백을 실행하도록 수정하세요.
| <CarouselIndicator variant="number" current={current} total={total} /> | ||
| <CarouselIndicator variant="dot" total={total} activeIndex={current - 1} /> | ||
| {hasItems && ( | ||
| <CarouselArrow direction="right" onClick={handleNext} disabled={nextDisabled} /> |
There was a problem hiding this comment.
카드 전환 애니메이션이 진행되는 동안에도 화살표 입력이 가능하더라고요. 이 경우 연속으로 클릭하면 애니메이션이 끝나기 전에 handlePrev/handleNext가 다시 호출돼 전환이 꼬일 수 있을 것 같습니다.
의도적으로 제외하신 게 아니라면 || isAnimating 조건 다시 넣어주시면 좋을 것 같습니다
There was a problem hiding this comment.
이미 handlePrev/handleNext에서 isAnimating에서 가드하고 있어 애니메이션 중 추가 전환은 실행되지 않도록 작성했습니다! 시각적으로만 반영이 안되게 해놨습니다~
#️⃣ 연관된 이슈
📝 작업 내용
savedJobs도메인으로 분리해 목록, 내역, 빈 상태의 책임을 구분했습니다./saved?preview=empty에서 저장 공고 0건 상태를 미리 확인할 수 있게 했습니다.✅ 체크사항
📸 스크린샷 (UI 변경 시)
📦 추가한 라이브러리 (선택)
💬 리뷰 요구사항 (선택)
Summary by CodeRabbit
새 기능
개선 사항