Skip to content

[Feat/#97] map UI 구현#98

Open
taegeon2 wants to merge 12 commits into
developfrom
feat/#97-map-ui
Open

[Feat/#97] map UI 구현#98
taegeon2 wants to merge 12 commits into
developfrom
feat/#97-map-ui

Conversation

@taegeon2
Copy link
Copy Markdown
Contributor

요약

  • 지도 탭의 맵 검색 기능 전체 UI를 구현했습니다.
  • 학생/관리자/파트너 역할별로 다른 검색 결과 카드(StudentStoreCard, AdminStoreCard)를 FSD 구조에 맞게 분리 구현했습니다.
  • 실제 지도가 화면에 나오는 부분은 제가 아직 미흡해서 아직 못 했습니다.. 죄송합니다..! @chunjaemin 님께 도움 받아서 진행해보겠습니다.

관련 이슈

작업 세부사항

  • app — 학생/관리자/파트너 역할별 map-search 라우트 스크린 추가
  • entities/storeSearchResultStore 타입 확장 (address, isPartner, partnershipStartDate/EndDate 필드 추가)
  • features/map-searchusePopularStores, useSearchStores React Query 훅 및 mock 데이터 구현
  • shared/lib/hooksuseDebounce 훅 추가
  • shared/assets/iconslocation 아이콘 추가
  • widgets/mapMapView, MapSearchBar, StudentStoreCard, AdminStoreCard, SearchResultCard 구현
  • pages/map-search — 역할 prop을 받는 MapSearchPage 구현 (인기 랭킹, 검색 결과 FlatList, debounce 적용)
  • pages/*/map — 학생/관리자/파트너 각 역할의 맵 탭 페이지 구현

참고사항

  • 카드 디자인은 shared/ui/summary-card/SummaryCard 기준을 따르되, 확장성을 위해 독립 구현했습니다.
  • 인기 랭킹 항목 탭 시 해당 가게명이 검색어로 자동 입력됩니다.
  • 실제 카카오맵 끌고오는 건 요약에 적혀있는 것처럼 도움받아서 최대한 빨리 구현하겠습니다 죄송합니다.. ㅜㅜ
image image image

@taegeon2 taegeon2 self-assigned this Apr 26, 2026
@github-actions
Copy link
Copy Markdown

Thanks for the contribution!
I have applied any labels matching special text in your title and description.

Please review the labels and make any necessary changes.

@github-actions github-actions Bot added the feature 새로운 기능 구현 label Apr 26, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request implements a comprehensive map search feature across admin, partner, and student roles, introducing new store entities, a map search feature with debounced querying, and reusable map widgets. It also enhances the chat entity with a list view and updated item interactions, alongside various routing updates. Review feedback highlights a discrepancy in the partner chat page padding, suggests more stable layout techniques for empty search results, recommends adding scrollability to the popular stores section, and cautions against global style changes in shared components.

withTopInset={true}
withBottomInset={false}
className="flex-1 bg-canvas"
contentContainerClassName="flex-1 px-6 pt-6"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

8번 라인의 주석에서는 채팅방 아이템이 화면 끝까지 닿아야 하므로 px-6을 적용하지 않았다고 설명되어 있으나, 실제 코드인 contentContainerClassName에는 px-6이 포함되어 있습니다. 또한 내부의 PageTitle 영역(17번 라인)에도 px-6이 적용되어 있어 제목 부분에 중복 패딩이 발생합니다. Figma 디자인 명세에 따라 의도에 맞게 contentContainerClassName에서 px-6을 제거해 주세요.

Suggested change
contentContainerClassName="flex-1 px-6 pt-6"
contentContainerClassName="flex-1 pt-6"
References
  1. Ensure UI component values prioritize Figma design specifications and maintain correct punctuation and spacing.


{isSearching ? (
!isSearchLoading && searchResults.length === 0 ? (
<View className="flex-1 items-center justify-start pt-[15rem] gap-2 px-6">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

검색 결과가 없을 때의 위치를 잡기 위해 pt-[15rem]과 같은 큰 상단 패딩을 사용하고 있습니다. 이는 기기 화면 크기에 따라 일관되지 않은 UI를 보여줄 수 있으며, React Native 환경에서 rem 단위 사용은 설정에 따라 의도치 않게 동작할 수 있습니다. Figma 디자인 명세를 확인하여 justify-center를 사용하여 수직 중앙 정렬을 하는 것이 더 안정적입니다.

Suggested change
<View className="flex-1 items-center justify-start pt-[15rem] gap-2 px-6">
<View className="flex-1 items-center justify-center gap-2 px-6">
References
  1. Prioritize Figma design specifications as the source of truth for UI values and layout consistency.

) : (
showPopular &&
popularStores.length > 0 && (
<View className="px-[14px] pt-5">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

"지금 많이 찾는 제휴 매장" 섹션이 스크롤 가능한 뷰(ScrollView 등)로 감싸져 있지 않습니다. 인기 매장 목록이 길어질 경우 화면 하단이 잘려 보이지 않을 수 있으므로, Figma 디자인 명세에 맞춰 해당 섹션이 스크롤 가능하도록 개선이 필요합니다. (참고: ScrollView를 사용하려면 상단에 임포트가 필요합니다.)

References
  1. UI changes should be based on authoritative design specifications like Figma.

<Pressable
onPress={onActionPress}
className={`rounded-lg px-5 py-3 ${
className={`rounded-lg px-[10px] py-[5px] ${
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

공통 컴포넌트인 SummaryCard 내부 버튼의 패딩을 px-5 py-3에서 px-[10px] py-[5px]로 변경하셨습니다. 이 컴포넌트를 사용하는 다른 페이지들에서 버튼 크기가 작아지는 등 의도치 않은 UI 변경이 발생할 수 있습니다. Figma 디자인 명세가 전체 변경을 지시한 것이 아니라면, 별도의 스타일 props를 추가하여 처리하는 것을 권장합니다.

References
  1. Prioritize Figma design specifications for UI component values and avoid unintended global style changes.

@taegeon2 taegeon2 changed the title Feat/#97 map UI [Feat/#97] map UI Apr 27, 2026
@taegeon2 taegeon2 changed the title [Feat/#97] map UI [Feat/#97] map UI 구현 Apr 27, 2026
@taegeon2 taegeon2 requested review from chunjaemin and removed request for kimyw1018 May 24, 2026 00:15
[FEAT/#100] web-hook 기반 카카오 맵 연동
Copy link
Copy Markdown
Contributor

@chunjaemin chunjaemin left a comment

Choose a reason for hiding this comment

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

확인했습니다 고생하셨어요..!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature 새로운 기능 구현

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT/#97] 지도탭 UI 구현

4 participants