You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 feature:setting:presentation의 ReceiverListScreen이 검색·초성 인덱스·단일 선택·완료 버튼을 포함한 수신자 선택 UI 전체를 소유한다. 애프터노트 #540도 같은 화면이 필요하지만, feature:afternote:presentation이 feature:setting:presentation에 직접 의존하거나 화면을 복제하면 기능 간 결합 또는 UI 분기가 생긴다.
Figma 작성 화면 핀에서 PM 전건호가 2026-08-06에 작성 플로우는 기존 수신자 목록 시트를 사용하고, 가능하면 애프터노트·타임레터·마음의 기록을 통일하는 방향을 제시했다. 따라서 설정에 묶인 선택 UI를 기능 중립적인 공용 경계로 추출해 각 작성 플로우가 같은 구현을 소비할 수 있게 한다.
작업 범위
검색 필드, 초성 인덱스, 수신자 행, 단일 선택, 완료 버튼으로 구성된 선택 UI를 기능 간 재사용 가능한 공용 컴포넌트로 추출한다.
공용 UI는 수신자 목록·현재 선택·선택/완료 콜백을 입력으로 받고, 데이터 조회·ViewModel·내비게이션은 각 소비 기능이 소유한다.
화면 제목·검색 안내·완료 문구처럼 진입 맥락에 따라 달라질 수 있는 값은 소비자가 제공할 수 있게 한다.
feature presentation 모듈끼리 직접 의존하지 않도록 한다.
기존 설정 소비 경로를 공용 컴포넌트로 전환하고, 검색·초성 이동·단일 선택·완료 동작을 테스트 또는 스크린샷 기준으로 보존한다.
완료 기준
애프터노트가 별도 선택 화면을 복제하지 않고 공용 컴포넌트를 사용할 수 있는 공개 API가 제공된다.
설정 소비 경로의 빌드와 기존 선택 동작이 유지된다.
공용 UI에 설정 또는 애프터노트 전용 데이터·내비게이션 의존이 남지 않는다.
📌 Child Issue(Optional)
No response
📍 Note (Optional)
이 이슈는 #540의 선행 작업이며, GitHub Relationships에서 #540의 blocked_by로 연결한다.
#631은 설정의 수신자 목록을 관리·상세 화면으로 바꾸는 별도 결함이다. 디자인 대기 중인 #631에 본 공통화를 합치지 않는다.
설정 관리 화면 재설계, 애프터노트 선택 결과 반환 배선, + 새 수신자 등록 흐름, 타 기능의 실제 전환은 이 이슈 범위에 포함하지 않는다.
Activity
[-]refactor(core): 수신자 선택 화면을 공용 컴포넌트로 추출[/-][+]수신자 선택 화면을 공용 컴포넌트로 추출[/+]refactor(afternote): 수신자 선택 화면을 공용 ReceiverSelectScreen 소비로 전환한다
refactor(core): 두 소비자가 같은 값을 넘기던 문구 2종을 공용 기본값으로 내린다
refactor(afternote): 수신자 선택 문구 2종을 공용 기본값에 맡긴다
refactor(core): title 도 공용 기본값으로 내리고 설정만 예외로 덮는다
refactor(afternote): 수신자 선택 제목도 공용 기본값에 맡긴다
refactor(core-ui,setting): 수신자 행 렌더링을 ReceiverProfileRow 로 공용화