@@ -6,6 +6,10 @@ import androidx.compose.foundation.layout.Box
66import androidx.compose.foundation.layout.size
77import androidx.compose.foundation.shape.RoundedCornerShape
88import 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
913import androidx.compose.ui.Alignment
1014import androidx.compose.ui.Modifier
1115import androidx.compose.ui.graphics.Color
@@ -16,17 +20,26 @@ import androidx.compose.ui.tooling.preview.Preview
1620import androidx.compose.ui.unit.dp
1721import com.threegap.bitnagil.designsystem.BitnagilTheme
1822import com.threegap.bitnagil.designsystem.R
23+ import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
1924
2025@Composable
2126fun 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
6073private 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