Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.eatssu.android.R
import com.eatssu.design_system.theme.EatssuTheme
import com.eatssu.design_system.theme.Festival
import com.eatssu.design_system.theme.Gray300
import com.eatssu.design_system.theme.Gray600
import com.eatssu.design_system.theme.Primary
Expand Down Expand Up @@ -84,7 +85,13 @@ fun PartnershipToggleItem(
onClick: () -> Unit,
modifier: Modifier = Modifier,
) {
val backgroundColor = if (selected) Primary else Color.Transparent
val backgroundColor =
if (selected && (label == stringResource(R.string.partnership_filter_festival)))
Festival
else if (selected)
Primary
else
Color.Transparent
Comment on lines +89 to +94
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

문자열 비교(label == stringResource(...))를 통해 UI 색상을 결정하는 방식은 유지보수와 정확성 측면에서 취약합니다.

  1. 잠재적 버그: '내 제휴' 탭에서 사용자의 학과명이 '축제'와 일치할 경우, 의도치 않게 축제 탭의 색상이 적용될 수 있습니다.
  2. 재사용성 저해: PartnershipToggleItem이라는 공통 컴포넌트가 특정 비즈니스 로직(축제)에 의존하게 됩니다.

PartnershipToggleItem이 UI 표현에만 집중할 수 있도록, 선택 시 적용할 색상(selectedColor)을 파라미터로 직접 전달받거나 FilterType을 전달받아 처리하도록 리팩토링하는 것을 권장합니다. 호출부인 PartnershipFilterToggle에서 타입에 따라 적절한 색상을 결정하여 넘겨주는 방식이 더 안전합니다.

val textColor = if (selected) White else Gray600

Box(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ val Gray700 = Color(0xFF1F1F1F)
// Brand
val Primary = Color(0xFF66D4C2)
val Secondary = Color(0xFFEEFBF8)
val Festival = Color(0xFF97AFFF)

// Yellow
val Star = Color(0xFFFFC700)
Expand Down
Loading