Skip to content

refactor(fe): 말단 컴포넌트의 화면 이동을 콜백 주입으로 전환#123

Merged
seongbin9786 merged 1 commit into
mainfrom
refactor/fe-nav-callback-injection
Jul 19, 2026
Merged

refactor(fe): 말단 컴포넌트의 화면 이동을 콜백 주입으로 전환#123
seongbin9786 merged 1 commit into
mainfrom
refactor/fe-nav-callback-injection

Conversation

@seongbin9786

Copy link
Copy Markdown
Contributor

배경

내비게이션은 화면(stackflow 탭, 액티비티)이 소유해야 하는데, 말단 컴포넌트 3개가 useFlow를 직접 호출해 화면을 이동시키고 있었다. 이 때문에 src/componentssrc/stackflow에 결합됐고, provider가 필요해 Storybook 스토리도 막혀 있었다.

이동을 화면이 소유하고 말단은 콜백만 받도록 바꿨다. 말단은 이제 어디로 이동하는지 모르고 콜백만 호출하며, 렌더하는 화면이 콜백을 주입한다. 결합이 끊겨 provider 없이 스토리를 작성할 수 있게 됐다.

Refactor

  • person/person-page-header: useFlow 제거, onBack prop 주입. 렌더러 person-activitypop()을 넘긴다
  • timeline/timeline-event-card: useFlow 제거, onSelect(eventId) prop 주입. 렌더러 timeline-tab, person-timeline-viewEventDetail push를 넘긴다
  • home/relation-force-map: useFlow 제거, onSelectPerson(personId) prop 주입. 렌더러 home-tabPerson 타임라인 push를 넘긴다
  • 이동 대상과 동작은 이전과 동일. src/components의 이 3개 말단은 더 이상 stackflow를 import 하지 않는다
  • person/use-person-delete는 이동을 소유하는 공용 훅이라 그대로 둔다

Docs

provider 없이 렌더되므로 스토리를 추가했다. 모든 콜백은 noop, 노출 텍스트는 한국어 샘플.

Story 시나리오
Person/PersonPageHeader 프로필 탭 활성, 타임라인 탭 활성
Timeline/TimelineEventCard 사진, 사람, 감정, 메모가 모두 있는 카드, 제목만 있는 최소 카드
Home/RelationForceMap 인물 4명 관계 지도, 인물 1명, 빈 지도

Test

TC 시나리오
TimelineEventCard Amplitude 마스킹 onSelect spy 주입 후에도 제목, 메모, 카테고리, 감정, 사람 라벨이 data-amp-mask 아래 렌더
TimelineEventCard 선택 콜백 카드를 누르면 onSelect가 기록 id로 호출

기존 useFlow 목을 제거하고 onSelect spy로 대체했다.

관계 지도, 타임라인 카드, 인물 헤더가 useFlow로 직접 화면을 이동시켜
말단 컴포넌트가 stackflow에 결합돼 있었다. 화면(탭, 액티비티)이 이동을
소유하도록 콜백 prop(onBack, onSelect, onSelectPerson)을 주입하고
말단은 콜백만 호출하게 바꿨다. 결합이 끊겨 provider 없이 Storybook
스토리도 작성할 수 있게 되어 세 컴포넌트의 스토리를 추가했다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 19, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
mongle Ready Ready Preview, Comment Jul 19, 2026 7:54am

@seongbin9786
seongbin9786 marked this pull request as ready for review July 19, 2026 08:00
@seongbin9786
seongbin9786 merged commit 35d4196 into main Jul 19, 2026
3 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.

1 participant