@@ -23,6 +23,8 @@ import androidx.compose.ui.unit.sp
2323import com.wafflestudio.siksha2.ui.CancelIcon
2424import com.wafflestudio.siksha2.ui.SikshaTheme
2525
26+ private val DefaultKeywords = listOf (" 맛" , " 가격" , " 음식구성" )
27+
2628@Composable
2729fun MenuKeywordStat (
2830 keywordString : String ,
@@ -35,11 +37,11 @@ fun MenuKeywordStat(
3537 modifier = modifier.fillMaxWidth()
3638 .background(color = SikshaTheme .colors.Gray100 , shape = RoundedCornerShape (8 .dp))
3739 ) {
38- if (keywordCount > 0 ) {
40+ if (keywordCount > 0 && keywordTotal > 0 ) {
3941 Box (modifier = Modifier .matchParentSize()) {
4042 Box (
4143 modifier = Modifier .fillMaxHeight()
42- .fillMaxWidth(keywordCount.toFloat() / keywordTotal.toFloat())
44+ .fillMaxWidth(( keywordCount.toFloat() / keywordTotal.toFloat()).coerceIn( 0f , 1f ))
4345 .align(Alignment .CenterStart )
4446 .background(color = SikshaTheme .colors.OrangeTint , shape = RoundedCornerShape (8 .dp))
4547 )
@@ -56,7 +58,7 @@ fun MenuKeywordStat(
5658 text = keywordString,
5759 fontSize = 13 .sp,
5860 fontWeight = FontWeight .Bold ,
59- color = if (keywordString in listOf ( " 맛 " , " 가격 " , " 음식구성 " ) ) SikshaTheme .colors.Gray600 else SikshaTheme .colors.Gray800 ,
61+ color = if (keywordString in DefaultKeywords ) SikshaTheme .colors.Gray600 else SikshaTheme .colors.Gray800 ,
6062 modifier = Modifier .weight(1f )
6163 )
6264 Text (
@@ -81,15 +83,16 @@ fun MenuKeywordStats(
8183 modifier = modifier,
8284 verticalArrangement = Arrangement .spacedBy(6 .dp)
8385 ) {
84- // TODO: 빈 스트링일 때 처리
85- for (i in keywords.ifEmpty { listOf (" 맛" , " 가격" , " 음식구성" ) }.indices) {
86- var keyword = keywords[i]
87- if (keyword == " " ) keyword = listOf (" 맛" , " 가격" , " 음식구성" )[i]
86+ DefaultKeywords .forEachIndexed { i, defaultKeyword ->
87+ val keyword = keywords.getOrNull(i)
88+ ?.takeIf { it.isNotBlank() }
89+ ? : defaultKeyword
90+
8891 MenuKeywordStat (
8992 keywordString = keyword,
90- keywordCount = keywordCounts.ifEmpty { listOf< Long >( 0 , 0 , 0 ) }[i] ,
91- keywordTotal = keywordTotals.ifEmpty { listOf< Long >( 0 , 0 , 0 ) }[i] ,
92- keywordIcon = keywordIcons[i]
93+ keywordCount = keywordCounts.getOrElse(i) { 0L } ,
94+ keywordTotal = keywordTotals.getOrElse(i) { 0L } ,
95+ keywordIcon = keywordIcons.getOrElse(i) { { CancelIcon () } }
9396 )
9497 }
9598 }
0 commit comments