Skip to content

[fix] 알바생 근무중인 가게 수정#54

Merged
limtjdghks merged 6 commits into
devfrom
fix/ALT-255
Jun 16, 2026
Merged

[fix] 알바생 근무중인 가게 수정#54
limtjdghks merged 6 commits into
devfrom
fix/ALT-255

Conversation

@limtjdghks

@limtjdghks limtjdghks commented Jun 14, 2026

Copy link
Copy Markdown
Member

ID

  • ALT-255

변경 내용

  • 유저 홈 근무중인 가게 섹션 및 가게 상세 페이지 QA 반영

구현 사항

근무중인 가게 카드 클릭 → 상세 페이지 이동

  • WorkingStoreCard에 onClick prop 추가 (키보드 접근성 포함)
  • WorkingStoresList에서 카드 클릭 시 /user/workspace/:workspaceId 로 이동

정렬 레이블 제거

  • WorkingStoresList의 sortLabelLeft, sortLabelRight, selectedSort props 제거

더보기 버튼 조건부 노출

  • 홈 근무중인 가게 섹션: API 반환 데이터 4개 이상일 때만 더보기 버튼 표시
  • 가게 상세 근무자 목록: 총 근무자 수 11명 이상일 때만 더보기 버튼 표시

근무자 아이템 액션 메뉴 추가

  • WorkerListItem의 onOptions 콜백 방식 → menuItems prop 방식으로 변경
  • ActionMenu 컴포넌트를 WorkerListItem 내부에서 직접 관리
  • 가게 상세 근무자 아이템에 "대타 요청" 메뉴 추가 → 클릭 시 /user/substitute-request 이동 (workspaceId state 전달)

구현 시연 (필요 시)

2026-06-15.4.17.03.mov

참고 사항 (필요 시)

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 워크스페이스 카드 클릭 시 상세 페이지로 이동하며, 카드에서 마우스/키보드(Enter/Space) 동작을 지원합니다.
    • 워크스페이스 상세 페이지의 근무자 항목에 “대타 요청” 메뉴를 추가했습니다.
    • 근무자 목록에 컨텍스트 메뉴(옵션) 제공 기능을 추가했습니다.
  • 개선사항

    • 워크스페이스 목록의 정렬 UI/옵션을 제거해 화면을 단순화했습니다.
    • “대체 요청” 생성 흐름이 조건에 따라 자동으로 열리도록 개선했습니다.

@limtjdghks limtjdghks requested review from dohy-eon and kim3360 June 14, 2026 19:26
@limtjdghks limtjdghks self-assigned this Jun 14, 2026
@vercel

vercel Bot commented Jun 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
alter-client Ready Ready Preview, Comment Jun 16, 2026 1:35pm

@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a6b6cf47-6d37-4e97-9660-23e6f322d8d4

📥 Commits

Reviewing files that changed from the base of the PR and between ec0a34f and 73ade4f.

📒 Files selected for processing (1)
  • src/pages/user/substitute-request/index.tsx

📝 Walkthrough

요약 (Walkthrough)

WorkingStoreCard에 클릭/키보드 인터랙션을 추가하고, WorkingStoresList에서 카드 클릭 시 워크스페이스 상세 페이지로 이동하도록 연결했습니다. WorkerListItemmenuItems prop 기반 ActionMenu를 지원하도록 변경됐고, WorkspaceDetailPage에서 근무자 항목에 대타 요청 메뉴를 추가해 해당 라우트로 이동하며, SubstituteRequestPage에서 전달받은 workspaceId를 기반으로 자동 오픈 및 상태 정리를 수행합니다.

변경 사항

워크스페이스 카드 네비게이션 및 대타 요청 메뉴

Layer / File(s) 내용
WorkingStoreCard 버튼 인터랙션
src/features/user/home/workspace/ui/WorkingStoreCard.tsx
onClick prop 추가 및 제공 시 root <div>role="button" / tabIndex={0} / onKeyDown 처리를 갖는 인터랙티브 요소로 조건부 구성
WorkingStoresList 네비게이션 및 정렬 UI 제거
src/features/user/home/workspace/ui/WorkingStoresList.tsx
정렬 관련 props 및 UI 제거, 카드 클릭 시 workspaceId 기반 경로로 이동하며 businessName을 라우팅 state로 전달, MoreButtonstores.length >= 4 조건부 렌더링으로 변경
WorkerListItem ActionMenu 지원
src/shared/ui/home/WorkerListItem.tsx
menuItems?: ActionMenuItem[] prop 추가, isMenuOpen 상태 도입, menuItems 존재 시에만 ellipsis 버튼과 ActionMenu를 조건부 렌더링, onOptions 직접 콜백 제거
WorkspaceDetailPage 대타 요청 연결 및 더보기 조건 변경
src/pages/user/workspace-detail/index.tsx
useNavigate/ROUTES/SubstituteIcon import, 관리자 WorkerListItem에서 onOptions 제거, 근무자 WorkerListItem에 대타 요청 menuItems 연결, showWorkersLoadMorehasMoreWorkers && workersTotalCount >= 11로 단순화
SubstituteRequestPage 자동 오픈 및 상태 정리
src/pages/user/substitute-request/index.tsx
SubstituteRequestLocationStateworkspaceId 필드 추가, handleOpenCreate에서 location state 기반 워크스페이스 사전선택, useRef 가드를 통한 자동 오픈 useEffect, 모달 종료 시 route state에서 workspaceId 제거

리뷰 난이도

🎯 3 (Moderate) | ⏱️ ~25 minutes

연관 PR

  • alter-app/alter-client#48: ActionMenu/ActionMenuItem 컴포넌트 및 menuItems 패턴을 도입한 PR로, 이번 PR에서 WorkerListItem이 채택하는 구조의 원형입니다.
  • alter-app/alter-client#37: SubstituteRequestPageROUTES.USER.SUBSTITUTE_REQUEST 라우트를 실제로 정의한 PR로, 이번 PR이 연결 대상으로 사용하는 경로를 제공합니다.

추천 리뷰어

  • kim3360
  • dohy-eon
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 PR의 주요 변경사항을 명확히 반영하고 있습니다. '알바생 근무중인 가게 수정'은 홈 페이지의 근무중인 가게 섹션 및 관련 기능 개선 작업을 요약합니다.
Description check ✅ Passed PR 설명이 저장소의 템플릿 구조를 충실히 따르고 있으며, ID(ALT-255), 변경 내용, 구현 사항, 구현 시연 영상이 모두 포함되어 있습니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ALT-255

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed due to a network error.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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/pages/user/workspace-detail/index.tsx`:
- Around line 196-203: The substitute-request page has a contract mismatch where
workspace-detail passes workspaceId in the navigation state, but
SubstituteRequestLocationState type does not include a workspaceId field and the
page independently fetches all workspaces without considering the passed
context. Add the workspaceId field to the SubstituteRequestLocationState type
definition and update the page initialization logic to use the passed
workspaceId from navigation state as the default selected workspace instead of
always requiring the user to manually select from the complete list of
workspaces.
🪄 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

Run ID: 66ec0240-24c9-431a-aa96-e7312c10866f

📥 Commits

Reviewing files that changed from the base of the PR and between 7b7f75c and ec0a34f.

📒 Files selected for processing (4)
  • src/features/user/home/workspace/ui/WorkingStoreCard.tsx
  • src/features/user/home/workspace/ui/WorkingStoresList.tsx
  • src/pages/user/workspace-detail/index.tsx
  • src/shared/ui/home/WorkerListItem.tsx

Comment thread src/pages/user/workspace-detail/index.tsx

@dohy-eon dohy-eon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

래비시 코멘트만 수정하고 바로 머지해주세요

@limtjdghks limtjdghks merged commit be3f3ef into dev Jun 16, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants