Skip to content

Commit f2900eb

Browse files
committed
Feat: BitnagilCheckBox 컴포저블 기능 추가
- onCheckedChange 콜백 추가하여 외부에서 체크 상태를 변경할 수 있도록 함
1 parent 9b61c0a commit f2900eb

File tree

1 file changed

+18
-1
lines changed
  • core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/component/atom

1 file changed

+18
-1
lines changed

core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/component/atom/BitnagilCheckBox.kt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import androidx.compose.foundation.layout.Box
66
import androidx.compose.foundation.layout.size
77
import androidx.compose.foundation.shape.RoundedCornerShape
88
import androidx.compose.runtime.Composable
9+
import androidx.compose.runtime.getValue
10+
import androidx.compose.runtime.mutableStateOf
11+
import androidx.compose.runtime.remember
12+
import androidx.compose.runtime.setValue
913
import androidx.compose.ui.Alignment
1014
import androidx.compose.ui.Modifier
1115
import androidx.compose.ui.graphics.Color
@@ -16,17 +20,26 @@ import androidx.compose.ui.tooling.preview.Preview
1620
import androidx.compose.ui.unit.dp
1721
import com.threegap.bitnagil.designsystem.BitnagilTheme
1822
import com.threegap.bitnagil.designsystem.R
23+
import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
1924

2025
@Composable
2126
fun BitnagilCheckBox(
2227
checked: Boolean,
2328
modifier: Modifier = Modifier,
29+
onCheckedChange: ((Boolean) -> Unit)? = null,
2430
colors: BitnagilCheckBoxColor = BitnagilCheckBoxColor.terms(),
2531
) {
2632
val iconColor = if (checked) colors.checkedColor else colors.uncheckedColor
2733

2834
Box(
2935
modifier = modifier
36+
.let {
37+
if (onCheckedChange != null) {
38+
it.clickableWithoutRipple { onCheckedChange(!checked) }
39+
} else {
40+
it
41+
}
42+
}
3043
.background(
3144
color = BitnagilTheme.colors.white,
3245
shape = RoundedCornerShape(6.dp),
@@ -58,5 +71,9 @@ data class BitnagilCheckBoxColor(
5871
@Preview
5972
@Composable
6073
private fun BitnagilCheckBoxPreview() {
61-
BitnagilCheckBox(checked = true)
74+
var checked by remember { mutableStateOf(false) }
75+
BitnagilCheckBox(
76+
checked = checked,
77+
onCheckedChange = { checked = !checked },
78+
)
6279
}

0 commit comments

Comments
 (0)