Skip to content

refactor(afternote): 에디터 파라미터 봉투 2종 언번들 — AfternoteEditorScreenCallbacks·AfternoteEditorNavigationParams, no-op 디폴트 제거 포함 #602

Closed

Description

@OnlyReadOneBook

📜 Overview (Required)

#439(콜백/Params grab-bag 언번들)의 감사에서 빠진 파라미터 봉투가 에디터 흐름에 2개 남아 있다. 둘 다 대상 목록에도, 본문의 "제외" 항목(MemorialPlaylistEntryActions·MemorialGuidelineEditorContentParams)에도 없다. 성격과 처분이 같아 한 이슈로 묶어 처리한다.

1. AfternoteEditorScreenCallbacks

묶여 있는 근거가 이미 무효다. KDoc 은 콜백 그룹 (S107: 파라미터 7개 이하 유지) 라고 적고 있는데, #439 가 "≤7(S107) 은 이 repo 미강제(detekt/sonar 없음) 자율규약이라 번들 정당화 근거가 아님"으로 판정한 바로 그 근거다. 현재도 detekt·sonar 설정은 레포에 없다.

디폴트 = {} 도 함께 걷는다. 8개 콜백 전부 = {} 디폴트를 갖고 AfternoteEditorScreen 은 callbacks: AfternoteEditorScreenCallbacks = AfternoteEditorScreenCallbacks() 로 no-arg 인스턴스를 기본값으로 받는다. 그런데 AfternoteEditorScreen 호출처는 AfternoteNavGraphEditor 한 곳뿐이고 거기서 콜백을 모두 채워 넘긴다 — Preview 도 스크린샷 테스트도 이 화면을 직접 호출하지 않아, no-op 디폴트가 실제로 소비되는 자리가 없다. 대가만 남는다: 배선을 빠뜨려도 컴파일이 통과하고 조용히 아무 일도 안 한다. 특히 onThumbnailExtractionFailed 는 텔레메트리 콜백이라 누락돼도 화면에 증상이 없어 침묵으로 끝난다.

2. AfternoteEditorNavigationParams (AfternoteNavGraphEditor.kt:69)

같은 형태다 — 9필드 중 7개가 람다이고, @Composable AfternoteEditorNavigation(params: AfternoteEditorNavigationParams) 에 넘기기만 하는 봉투다.

internal data class AfternoteEditorNavigationParams(
    val backStackEntry: NavBackStackEntry,
    val liveSongs: List<Song>,
    val onReplaceSongs: (List<Song>) -> Unit,
    val onClearSongs: () -> Unit,
    val onNavigateToSelectReceiver: () -> Unit = {},
    val onBottomNavTabSelected: (BottomNavTab) -> Unit = {},
    val onPopBackStack: () -> Unit,
    val onNavigateToMemorialPlaylist: () -> Unit,
    val onSaveSuccessNavigateHome: () -> Unit,
)

여기도 no-op 디폴트가 2개(onNavigateToSelectReceiver·onBottomNavTabSelected)인데, 생성처는 AfternoteNavGraph.kt 한 곳뿐이고 거기서 둘 다 채워 넘긴다. 소비되지 않는 디폴트다. 덧붙여 onNavigateToSelectReceiver 는 그 유일한 생성처에서 {} // TODO: 수신인 선택 화면 라우팅 연결 로 비어 있다 — 디폴트가 있어 이 미배선이 컴파일·리뷰 어디에도 안 걸린다.

판단 근거 (공통)

flat 파라미터로 풀고 디폴트를 제거하면 배선 누락이 컴파일 타임에 잡힌다.

📌 Child Issue(Optional)

No response

📍 Note (Optional)

Activity

  1. changed the title [-]refactor(afternote): AfternoteEditorScreenCallbacks 언번들 — #439 감사 누락분, no-op 디폴트 제거 포함[/-] [+]refactor(afternote): 에디터 파라미터 봉투 2종 언번들 — AfternoteEditorScreenCallbacks·AfternoteEditorNavigationParams, no-op 디폴트 제거 포함[/+] on Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions