Skip to content

Commit 5f9bdd6

Browse files
authored
Merge pull request #45 from Go-Socket-Project/feature/44_publishing_for_checkbox
🔀 :: (#44) publishing for checkbox
2 parents 22b1089 + b5da77e commit 5f9bdd6

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.chat.designsystem.component.checkbox
2+
3+
import androidx.compose.foundation.border
4+
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.Spacer
6+
import androidx.compose.foundation.layout.height
7+
import androidx.compose.foundation.layout.size
8+
import androidx.compose.foundation.shape.RoundedCornerShape
9+
import androidx.compose.material3.Checkbox
10+
import androidx.compose.material3.CheckboxDefaults
11+
import androidx.compose.runtime.Composable
12+
import androidx.compose.runtime.getValue
13+
import androidx.compose.runtime.mutableStateOf
14+
import androidx.compose.runtime.remember
15+
import androidx.compose.runtime.setValue
16+
import androidx.compose.ui.Modifier
17+
import androidx.compose.ui.draw.clip
18+
import androidx.compose.ui.tooling.preview.Preview
19+
import androidx.compose.ui.unit.dp
20+
import com.chat.designsystem.theme.N3
21+
import com.chat.designsystem.theme.P1
22+
import com.chat.designsystem.util.clickableNoRipple
23+
24+
@Composable
25+
fun GoSocketCheckbox(
26+
modifier: Modifier = Modifier,
27+
checked: Boolean,
28+
onCheckedChange: (Boolean) -> Unit,
29+
) {
30+
var isChecked by remember { mutableStateOf(checked) }
31+
32+
Checkbox(
33+
modifier = modifier
34+
.size(20.dp)
35+
.clip(RoundedCornerShape(8.dp))
36+
.border(
37+
width = 2.dp,
38+
color = if (isChecked) P1 else N3,
39+
shape = RoundedCornerShape(8.dp)
40+
)
41+
.clickableNoRipple {
42+
isChecked = !isChecked
43+
onCheckedChange(isChecked)
44+
},
45+
checked = isChecked,
46+
onCheckedChange = null,
47+
colors = CheckboxDefaults.colors(checkedColor = P1)
48+
)
49+
}
50+
51+
@Preview
52+
@Composable
53+
fun GoSocketCheckboxPreview() {
54+
Column {
55+
GoSocketCheckbox(checked = true) {}
56+
Spacer(modifier = Modifier.height(10.dp))
57+
GoSocketCheckbox(checked = false) {}
58+
}
59+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.chat.designsystem.theme
2+
3+
import androidx.compose.ui.graphics.Color
4+
5+
val P1 = Color(0xFF6263FB)
6+
7+
val N3 = Color(0xFFBBBBCC)

0 commit comments

Comments
 (0)