Skip to content

Commit

Permalink
refactor: Contained, Outlined, Color chip Stateless Composable로 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
BEEEAM-J committed Dec 5, 2023
1 parent 724e7ac commit dfa60f0
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,27 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.Preview

@Composable
fun SuwikiColorChip() {
var chipState by rememberSaveable { mutableStateOf(false) }

when (chipState) {
fun SuwikiColorChip(
isChecked: Boolean,
onClick: () -> Unit = {},
) {
when (isChecked) {
true -> {
SuwikiCheckedColorChip { chipState = !chipState }
SuwikiCheckedColorChip(onClick = onClick)
}
false -> {
SuwikiNonCheckedColorChip { chipState = !chipState }
SuwikiNonCheckedColorChip(onClick = onClick)
}
}
}

@Preview(showBackground = true, backgroundColor = 0xFFFFFF)
@Composable
fun SuwikiColorChipPreview() {
SuwikiColorChip()
var isChecked by rememberSaveable { mutableStateOf(false) }

SuwikiColorChip(
isChecked = isChecked,
onClick = { isChecked = !isChecked }
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,50 +22,42 @@ enum class SuwikiChipType {
ORANGE,
BLUE,
GREEN,
DISABLE
// DISABLE
}

@Composable
fun SuwikiContainedChip(type: SuwikiChipType, text: String) {
var chipState by remember { mutableStateOf(false) }

fun SuwikiContainedChip(
isChecked: Boolean,
onClick: () -> Unit = {},
type: SuwikiChipType,
text: String,
) {
val backgroundColor: Color
val contentColor: Color

when (type) {
SuwikiChipType.ORANGE -> {
backgroundColor = Color(0xFFFFF3EB)
contentColor = Color(0xFFFD873B)
when (isChecked) {
true -> {
when (type) {
SuwikiChipType.ORANGE -> {
backgroundColor = Color(0xFFFFF3EB)
contentColor = Color(0xFFFD873B)
}
SuwikiChipType.BLUE -> {
backgroundColor = Color(0xFFECEDFF)
contentColor = Color(0xFF3D4EFB)
}
SuwikiChipType.GREEN -> {
backgroundColor = Color(0xFFEAF8EC)
contentColor = Color(0xFF2DB942)
}
}
}
SuwikiChipType.BLUE -> {
backgroundColor = Color(0xFFECEDFF)
contentColor = Color(0xFF3D4EFB)
}
SuwikiChipType.GREEN -> {
backgroundColor = Color(0xFFEAF8EC)
contentColor = Color(0xFF2DB942)
}
SuwikiChipType.DISABLE -> {
false -> {
backgroundColor = Color(0xFFF6F6F6)
contentColor = Color(0xFF959595)
}
}

SuwikiContainedChipItem(
text = text,
backgroundColor = backgroundColor,
contentColor = contentColor,
onClick = { chipState = !chipState },
)
}

@Composable
fun SuwikiContainedChipItem(
text: String,
backgroundColor: Color,
contentColor: Color,
onClick: () -> Unit = {},
) {
Box(
modifier = Modifier
.clip(RoundedCornerShape(5.dp))
Expand All @@ -86,5 +78,12 @@ fun SuwikiContainedChipItem(
@Preview(showBackground = true, backgroundColor = 0xFFFFFF)
@Composable
fun SuwikiContainedChipPreview() {
SuwikiContainedChip(SuwikiChipType.ORANGE, "label")
var isChecked by remember { mutableStateOf(false) }

SuwikiContainedChip(
isChecked = isChecked,
onClick = { isChecked = !isChecked },
type = SuwikiChipType.GREEN,
text = "label",
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,45 +21,32 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

@Composable
fun SuwikiOutlinedChip(text: String) {
var labelState by remember { mutableStateOf(false) }

val backgroundColor: Color
fun SuwikiOutlinedChip(
text: String,
isChecked: Boolean,
onClick: () -> Unit = {},
) {
val borderLineColor: Color
val contentColor: Color

when (labelState) {
when (isChecked) {
false -> {
backgroundColor = Color(0xFFDADADA)
borderLineColor = Color(0xFFDADADA)
contentColor = Color(0xFF959595)
}
true -> {
backgroundColor = Color(0xFF346CFD)
borderLineColor = Color(0xFF346CFD)
contentColor = Color(0xFF346CFD)
}
}

SuwikiOutlinedChipItem(
text = text,
backgroundColor = backgroundColor,
contentColor = contentColor,
onClick = { labelState = !labelState },
)
}

@Composable
fun SuwikiOutlinedChipItem(
text: String,
backgroundColor: Color,
contentColor: Color,
onClick: () -> Unit = {},
) {
Box(
modifier = Modifier
.clip(RoundedCornerShape(5.dp))
.clickable(onClick = onClick)
.size(41.dp, 26.dp)
.background(color = Color(0xFFFFFFFF))
.border(width = 1.dp, color = backgroundColor, shape = RoundedCornerShape(5.dp)),
.border(width = 1.dp, color = borderLineColor, shape = RoundedCornerShape(5.dp)),
) {
Text(
text = text,
Expand All @@ -74,5 +61,11 @@ fun SuwikiOutlinedChipItem(
@Preview(showBackground = true, backgroundColor = 0xFFFFFF)
@Composable
fun SuwikiOutlinedChipPreview() {
SuwikiOutlinedChip("label")
var isChecked by remember { mutableStateOf(false) }

SuwikiOutlinedChip(
text = "label",
isChecked = isChecked,
onClick = { isChecked = !isChecked },
)
}

0 comments on commit dfa60f0

Please sign in to comment.