@@ -14,13 +14,16 @@ import androidx.compose.material3.HorizontalDivider
1414import androidx.compose.material3.Icon
1515import androidx.compose.material3.ModalBottomSheet
1616import androidx.compose.material3.Text
17+ import androidx.compose.material3.rememberModalBottomSheetState
1718import androidx.compose.runtime.Composable
19+ import androidx.compose.runtime.rememberCoroutineScope
1820import androidx.compose.ui.Alignment
1921import androidx.compose.ui.Modifier
2022import androidx.compose.ui.tooling.preview.Preview
2123import androidx.compose.ui.unit.dp
2224import com.threegap.bitnagil.designsystem.BitnagilTheme
2325import com.threegap.bitnagil.presentation.home.model.RoutineSortType
26+ import kotlinx.coroutines.launch
2427
2528@OptIn(ExperimentalMaterial3Api ::class )
2629@Composable
@@ -30,7 +33,11 @@ fun RoutineSortBottomSheet(
3033 onDismiss : () -> Unit ,
3134 modifier : Modifier = Modifier ,
3235) {
36+ val sheetState = rememberModalBottomSheetState()
37+ val coroutineScope = rememberCoroutineScope()
38+
3339 ModalBottomSheet (
40+ sheetState = sheetState,
3441 onDismissRequest = onDismiss,
3542 containerColor = BitnagilTheme .colors.white,
3643 contentColor = BitnagilTheme .colors.white,
@@ -40,6 +47,13 @@ fun RoutineSortBottomSheet(
4047 currentSortType = currentSortType,
4148 onClick = { sortType ->
4249 onSortTypeChange(sortType)
50+ coroutineScope
51+ .launch { sheetState.hide() }
52+ .invokeOnCompletion {
53+ if (! sheetState.isVisible) {
54+ onDismiss()
55+ }
56+ }
4357 },
4458 modifier = Modifier
4559 .padding(horizontal = 16 .dp)
@@ -93,8 +107,10 @@ private fun SortOptionItem(
93107 .fillMaxWidth()
94108 .padding(vertical = 8 .dp)
95109 .height(36 .dp)
96- // todo: 리플효과 제거하기
97- .clickable { onClick(sortType) },
110+ .clickable {
111+ onClick(sortType)
112+ // 짧은 지연 후 바텀시트 닫기 (선택적)
113+ },
98114 ) {
99115 Text (
100116 text = text,
0 commit comments