From 3c20067312293efe75f24b82d3a9daae805e8842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Sat, 29 Aug 2026 10:07:13 +0900 Subject: [PATCH] =?UTF-8?q?refactor(afternote):=20=EB=AF=B8=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=20SelectableRadioCard=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 정의 파일 밖 사용처가 0건이다. 파일 안의 참조 2건은 자기 자신의 @Preview 와 그 호출뿐이라 함께 사라진다. #649 사용처 전수 조사에서 확인된 잔여 정리로, 이관 없이 삭제만 한다. --- .../shared/SelectableRadioCard.kt | 122 ------------------ 1 file changed, 122 deletions(-) delete mode 100644 feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/SelectableRadioCard.kt diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/SelectableRadioCard.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/SelectableRadioCard.kt deleted file mode 100644 index 4f44850389..0000000000 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/SelectableRadioCard.kt +++ /dev/null @@ -1,122 +0,0 @@ -package com.afternote.feature.afternote.presentation.shared - -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.selection.selectable -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.material3.ripple -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.semantics.Role -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.afternote.core.ui.button.CustomRadioButton -import com.afternote.core.ui.theme.AfternoteDesign -import com.afternote.core.ui.theme.AfternoteTheme - -/** - * 선택 가능한 라디오 버튼 카드 컴포넌트 - * - * @param title 카드 제목 - * @param description 카드 설명. null이거나 공백이면 표시하지 않습니다. - * @param selected 선택 여부 - * @param onClick 클릭 이벤트 - * @param modifier Modifier - */ -@Composable -fun SelectableRadioCard( - title: String, - selected: Boolean, - onClick: () -> Unit, - modifier: Modifier = Modifier, - description: String? = null, -) { - Surface( - modifier = - modifier.selectable( - selected = selected, - onClick = onClick, - role = Role.RadioButton, - interactionSource = remember { MutableInteractionSource() }, - indication = ripple(), - ), - shape = RoundedCornerShape(6.dp), - border = - BorderStroke( - 1.dp, - if (selected) { - AfternoteDesign.colors.gray8 - } else { - AfternoteDesign.colors.gray2 - }, - ), - color = AfternoteDesign.colors.white, - ) { - Row( - modifier = - Modifier - .fillMaxWidth() - .padding(16.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(16.dp), - ) { - // 내부 라디오 버튼은 클릭 이벤트 null 처리하여 부모 Surface 클릭과 충돌 방지 - CustomRadioButton( - selected = selected, - onClick = null, - buttonSize = 24.dp, - selectedColor = AfternoteDesign.colors.gray9, - unselectedColor = AfternoteDesign.colors.gray4, - ) - Column( - verticalArrangement = Arrangement.spacedBy(5.dp), - ) { - Text( - text = title, - style = - if (selected) { - AfternoteDesign.typography.primaryButton.copy( - color = AfternoteDesign.colors.gray9, - ) - } else { - AfternoteDesign.typography.bodyBase.copy( - color = AfternoteDesign.colors.gray8, - ) - }, - ) - if (!description.isNullOrBlank()) { - Text( - text = description, - style = - AfternoteDesign.typography.bodySmallR.copy( - color = AfternoteDesign.colors.gray6, - ), - ) - } - } - } - } -} - -@Preview(showBackground = true) -@Composable -private fun SelectableRadioCardPreview() { - AfternoteTheme { - // 선택됨 - 제목 + 설명 - SelectableRadioCard( - title = "제목 텍스트", - description = "설명 텍스트", - selected = true, - onClick = {}, - ) - } -}