Skip to content

핀 장소 상세 조회 API 연동 - #166

Merged
onebone merged 3 commits into
developfrom
feat/165-pin-create-map-selection
Aug 4, 2026
Merged

onebone merged 3 commits into
developfrom
feat/165-pin-create-map-selection

Conversation

@onebone

@onebone onebone commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

변경 내용

  • 검색 및 최근 검색 결과에서 백엔드 placeId와 북마크 상태를 유지하도록 타입과 변환 로직을 보완했습니다.
  • 선택한 장소의 상세 정보를 현재 위치와 함께 조회하고, 거리·주소·핀 소유·북마크 상태를 장소 시트에 반영했습니다.
  • 북마크 버튼이 서버 상태를 표시하도록 연결했으며, 북마크 변경 API 연동 전까지 조작은 비활성화했습니다.

관련 이슈

Closes #165

변경 사항

  • 새로운 기능 추가
  • 버그 수정
  • UI/UX 개선
  • 리팩토링
  • 문서 업데이트

테스트

  • 브라우저에서 정상 동작 확인

  • 기존 기능에 영향 없음 확인

  • npm run typecheck

  • npm run lint -- --max-warnings=10 (오류 0건, 기존 Fast Refresh 경고 2건)

  • npm run format:check

  • npm run build

스크린샷 (UI 변경시)

체크리스트

  • 코드가 정상적으로 동작합니다
  • 새로운 에러나 경고가 없습니다
  • 필요시 문서를 업데이트했습니다
  • 코드 포맷팅을 실행했습니다 (pnpm format)
  • ESLint 검사를 통과했습니다 (pnpm lint:fix)

코드 품질 확인
PR 제출 전에 다음 명령어를 실행하여 코드 품질을 확인해주세요:

pnpm lint:fix
pnpm format

Summary by CodeRabbit

  • 개선 사항
    • 장소 선택 시 위치 정보가 함께 반영되어 장소명, 주소, 거리 등의 정보가 더 정확하게 표시됩니다.
    • 검색 결과와 현재 위치 기반 장소 선택 과정이 일관되게 개선되었습니다.
    • 핀 목록에서 장소 상세 정보를 불러오는 동안 로딩 상태가 표시됩니다.
    • 상세 정보 조회 오류 시에도 기존 장소 정보와 북마크 상태를 안정적으로 유지합니다.
    • 북마크 상태에 따라 토글 가능 여부와 접근성 안내가 개선되었습니다.

@coderabbitai

coderabbitai Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@onebone, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 2 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c5aeb62e-e5ee-48ed-bc85-10f518743775

📥 Commits

Reviewing files that changed from the base of the PR and between 3895b70 and 2d72381.

📒 Files selected for processing (2)
  • src/features/pin/components/PinListSheet.tsx
  • src/pages/MapPage.tsx
📝 Walkthrough

Walkthrough

이 PR은 PinListSheet가 내부에서 현재 위치를 조회하는 방식 대신 외부에서 전달된 detailLocation을 사용하도록 변경한다. 북마크 상태를 loading, error, ready로 구분하여 UI와 접근성 속성에 반영한다. PinSearchPlace 타입에 selectionLocation을 추가하고, PinPlaceSearch와 MapPage에서 위치 정보를 전달하도록 수정한다.

Changes

PinListSheet 상세 위치 전달 및 북마크 상태

Layer / File(s) Summary
장소 선택 시 위치 정보 포함
src/features/pin/types.ts, src/features/pin/components/PinPlaceSearch.tsx
PinSearchPlace에 selectionLocation 필드를 추가한다. 일반 선택 경로와 검색 mutation 성공 경로 모두 현재 위치를 selectionLocation으로 포함한 객체를 검증하고 선택 콜백에 전달한다.
PinListSheet 상세 위치 조회 전환
src/features/pin/components/PinListSheet.tsx
현재 위치 훅 import를 제거하고 detailLocation prop을 추가한다. 상세 조회는 detailLocation 좌표를 사용하며, 조회 결과로 장소 정보를 보정하고 기존 별도 resolvedPlace 생성 블록을 제거한다.
북마크 상태별 UI 및 접근성 반영
src/features/pin/components/PinListSheet.tsx
PinListContentProps에 bookmarkStatus를 추가한다. 상태별 접근성 라벨, aria-pressed, aria-busy, 비활성화 여부, 로딩/오류 표시를 반영하며, 북마크 토글은 ready 상태에서만 허용한다.
MapPage에서 detailLocation 전달
src/pages/MapPage.tsx
검색 장소 시트는 selectionLocation을 우선 사용하고 없으면 현재 위치로 대체한 detailLocation을 전달한다. 핀 시트는 현재 위치를 detailLocation으로 전달한다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant PinPlaceSearch
  participant MapPage
  participant PinListSheet

  User->>PinPlaceSearch: 장소 선택
  PinPlaceSearch->>PinPlaceSearch: 현재 위치를 selectionLocation으로 추가
  PinPlaceSearch->>MapPage: 보강된 장소 객체 전달
  MapPage->>PinListSheet: detailLocation 전달 (selectionLocation 우선, 없으면 현재 위치)
  PinListSheet->>PinListSheet: detailLocation 좌표로 상세 조회
  PinListSheet->>PinListSheet: 장소 정보 및 북마크 상태 보정 (loading/error/ready)
  PinListSheet-->>User: 보정된 장소 정보 및 북마크 상태 렌더링
Loading

Possibly related PRs

  • UMC10th-PLIMAP/plimap-web#54: 이 PR은 PinSearchPlace 타입에 selectionLocation을 추가하는 검색 기능을 확장하고, PinPlaceSearch.tsx에서 보강된 위치 데이터를 선택 콜백으로 전달한다.
  • UMC10th-PLIMAP/plimap-web#59: 이 PR은 PinListContent 컴포넌트 추출과 북마크 버튼 처리를 도입했으며, 현재 PR은 detailLocation과 bookmarkStatus 상태 관리로 이를 확장한다.
  • UMC10th-PLIMAP/plimap-web#169: 이 PR은 PinListSheet에서 상세 위치를 내부 조회 대신 prop으로 받도록 리팩터링하며, 현재 PR의 북마크 상태 관리 패턴(loading/error/ready)을 유지한다.

Suggested reviewers: kim3360

🚥 Pre-merge checks | ✅ 2 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning 검색·최근 검색의 placeId 및 북마크 상태 보완은 #165의 현재 위치 핀 생성 요구와 직접 연결되지 않아 범위 외로 보입니다. 현재 위치 핀 생성에 필요한 변경만 유지하고, 검색·최근 검색 및 북마크 보완은 별도 이슈 또는 PR로 분리하십시오.
Linked Issues check ❓ Inconclusive 변경 사항은 현재 위치 전달과 장소 상세 조회를 보완하지만, #165의 핀 생성 구현 완료 여부를 확인할 근거가 부족합니다. 현재 위치에서 핀을 생성하는 호출과 성공·실패 처리를 구현했는지 관련 코드와 테스트를 명시하십시오.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 장소 상세 조회 API 연동이라는 PR의 핵심 변경을 직접 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/165-pin-create-map-selection

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.

@onebone onebone added the feature Feature implementation label Aug 1, 2026
@onebone onebone self-assigned this Aug 1, 2026
@onebone
onebone force-pushed the feat/165-pin-create-map-selection branch from cce669d to a87c0fd Compare August 2, 2026 15:37
@onebone
onebone marked this pull request as ready for review August 2, 2026 15:38
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown

https://pr-166.plimap.kr

@onebone

onebone commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@onebone

onebone commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@onebone

onebone commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@onebone

onebone commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 4 minutes.

@onebone

onebone commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@onebone
onebone force-pushed the feat/165-pin-create-map-selection branch from a87c0fd to f0c8115 Compare August 3, 2026 14:47
@onebone
onebone force-pushed the feat/165-pin-create-map-selection branch from f0c8115 to 3895b70 Compare August 4, 2026 13:41

@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/MapPage.tsx`:
- Around line 276-281: Update MapPage’s current-location state handling so the
error delivered by MapViewer’s onCurrentLocationError is preserved instead of
being passed only to setCurrentLocation. Propagate that error to PinListSheet
alongside detailLocation, or expose it there as a separate UI state that
supports retry/permission guidance when current location is unavailable.
🪄 Autofix

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: 8e6e7048-724f-4932-8c52-6160fd1d4253

📥 Commits

Reviewing files that changed from the base of the PR and between 617bed3 and 3895b70.

📒 Files selected for processing (4)
  • src/features/pin/components/PinListSheet.tsx
  • src/features/pin/components/PinPlaceSearch.tsx
  • src/features/pin/types.ts
  • src/pages/MapPage.tsx

Comment thread src/pages/MapPage.tsx
@onebone
onebone merged commit b208a0b into develop Aug 4, 2026
4 checks passed
@onebone
onebone deleted the feat/165-pin-create-map-selection branch August 4, 2026 14:42

This branch had an error being deployed

1 failed and 1 active deployments
preview-maintenance — 2d72381d Deployed Aug 4, 2026 by onebone via cleanup #326
preview — 2d72381d Deployed Aug 4, 2026 by onebone via deploy #324
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Feature implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 현재 위치에서 핀 생성

1 participant