[FIX/#299] 스프린트 1차 QA 반영#301
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Walkthrough이 PR은 안드로이드 UI 컴포넌트들의 레이아웃 및 스타일링 조정과 로컬라이제이션을 포함합니다. 바텀시트 패딩 감소, 드롭다운 메뉴 커스터마이제이션 파라미터 추가, 홈 스크린의 팝업을 툴팁으로 리팩토링, 프로필 차단 다이얼로그 로컬라이제이션 추가, 랭커 아이템 상수 사용 최적화가 포함됩니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (3)
app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingDropdownMenu.kt (1)
70-72: 파라미터 이름 오타:bolderColor→borderColor
bolderColor는 오타로 보입니다. 의미상borderColor가 맞습니다. KDoc(line 56)과 사용처(line 119)도 함께 수정이 필요합니다.♻️ 수정 제안
- bolderColor: Color = colors.borderPrimary, + borderColor: Color = colors.borderPrimary,Line 56 KDoc도 수정:
- * `@param` bolderColor 항목 사이 구분선 색상 (기본값: colors.borderPrimary) + * `@param` borderColor 항목 사이 구분선 색상 (기본값: colors.borderPrimary)Line 119 사용처도 수정:
- color = bolderColor, + color = borderColor,🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingDropdownMenu.kt` around lines 70 - 72, Rename the misspelled parameter bolderColor to borderColor in the SmashingDropdownMenu function signature and update its default value (currently colors.borderPrimary) accordingly; also update the KDoc that describes this parameter (previously referencing bolderColor) and replace all internal usages (e.g., where bolderColor is referenced around the usage site in the composable) to use borderColor so names are consistent across declaration, documentation, and use.app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingRegionDropdown.kt (1)
62-62: 파라미터 이름 불일치:isDividevsisDivided
RegionDropdown에서는isDivide를 사용하고,SmashingDropdownMenu에서는isDivided를 사용합니다. API 일관성을 위해 이름을 통일하는 것이 좋습니다.♻️ 일관된 네이밍 제안
fun RegionDropdown( selectedItem: String, items: ImmutableList<String>, onClick: (String) -> Unit, onRegionChange: () -> Unit, modifier: Modifier = Modifier, - isDivide: Boolean = true, + isDivided: Boolean = true, ) {그리고 사용처도 변경:
- isDivided = isDivide, + isDivided = isDivided,Also applies to: 131-131
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingRegionDropdown.kt` at line 62, The parameter name mismatch between RegionDropdown (uses isDivide) and SmashingDropdownMenu (uses isDivided) causes an inconsistent API; standardize the name across both components—pick one identifier (e.g., isDivided) and update all declarations and call sites (constructor/parameters and usages) in RegionDropdown, SmashingDropdownMenu, and any places referencing the parameter so they all use the same symbol (isDivided) consistently.app/src/main/java/com/smashing/app/presentation/home/component/RecommendedInfoPopup.kt (1)
42-69: 분리된 두Popup의 dismiss 경로는 실기기 확인이 필요합니다.Line 48은 꼬리 popup의 dismiss를 비워 두고, Line 64만 본문 popup의 dismiss를 처리하고 있습니다. 지금처럼 하나의 툴팁을 두 window로 나누면 화살표 영역 탭이 body popup의 outside-click dismiss로 연결되지 않는 조합이 나올 수 있어서,
tail과body를 같은 popup 안에 두는 쪽이 더 안전합니다. 최소한 화살표 탭 / 바깥 영역 탭 / 뒤로가기에서 모두 정상 dismiss되는지 실기기 확인이 필요합니다.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@app/src/main/java/com/smashing/app/presentation/home/component/RecommendedInfoPopup.kt` around lines 42 - 69, Two separate Popup instances (the tail Popup with empty onDismissRequest and the body Popup handling onDismiss) can cause inconsistent dismiss behavior; change to render the tail and body inside a single Popup (e.g., one Popup with alignment/offset and properties) so both RecommendedInfoPopupTail and the body composable share the same onDismissRequest and PopupProperties, or if you must keep two Popups, wire the same onDismiss and identical PopupProperties (focusable/dismissOnBackPress/dismissOnClickOutside) to the tail Popup and the body Popup so taps on the tail, outside clicks, and back press consistently call onDismiss. Ensure you update references to tailOffsetX/tailOffsetY/bodyOffsetY and the onDismiss handler accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@app/src/main/java/com/smashing/app/core/designsystem/component/bottomsheet/SmashingBottomSheet.kt`:
- Around line 107-110: SmashingBottomSheet currently applies .padding(top =
16.dp, bottom = 12.dp) which causes inconsistent bottom spacing when optional
action buttons exist (they rely on an extra ~35.dp); update the component to
compute a single bottomPadding value (e.g. val bottomPadding = 12.dp + if
(hasActionButtons or actions.isNotEmpty()) 35.dp else 0.dp) and use .padding(top
= 16.dp, bottom = bottomPadding) so both button and no-button cases keep
consistent total bottom spacing; locate the padding call(s) in
SmashingBottomSheet and replace the hardcoded bottom with this computed
bottomPadding.
In `@app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt`:
- Around line 368-374: The info Icon currently has contentDescription = null and
uses noRippleClickable (Icon(... modifier = Modifier.noRippleClickable(...)))
resulting in poor accessibility and a tiny hit area; replace the raw Icon
clickable with an accessible container—either wrap the Icon in an IconButton
(preferred) or a Box/Surface with Modifier.size(48.dp) and a clickable/onClick
that toggles isInfoPopupVisible; add a string resource (e.g.
R.string.info_icon_description) and set contentDescription =
stringResource(R.string.info_icon_description) on the Icon (or provide semantics
with .semantics { contentDescription = ... }), remove noRippleClickable, keep
tint = SmashingTheme.colors.iconTertiary, and verify TalkBack/Accessibility
Scanner reports the button label and ≥48.dp touch target.
---
Nitpick comments:
In
`@app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingDropdownMenu.kt`:
- Around line 70-72: Rename the misspelled parameter bolderColor to borderColor
in the SmashingDropdownMenu function signature and update its default value
(currently colors.borderPrimary) accordingly; also update the KDoc that
describes this parameter (previously referencing bolderColor) and replace all
internal usages (e.g., where bolderColor is referenced around the usage site in
the composable) to use borderColor so names are consistent across declaration,
documentation, and use.
In
`@app/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingRegionDropdown.kt`:
- Line 62: The parameter name mismatch between RegionDropdown (uses isDivide)
and SmashingDropdownMenu (uses isDivided) causes an inconsistent API;
standardize the name across both components—pick one identifier (e.g.,
isDivided) and update all declarations and call sites (constructor/parameters
and usages) in RegionDropdown, SmashingDropdownMenu, and any places referencing
the parameter so they all use the same symbol (isDivided) consistently.
In
`@app/src/main/java/com/smashing/app/presentation/home/component/RecommendedInfoPopup.kt`:
- Around line 42-69: Two separate Popup instances (the tail Popup with empty
onDismissRequest and the body Popup handling onDismiss) can cause inconsistent
dismiss behavior; change to render the tail and body inside a single Popup
(e.g., one Popup with alignment/offset and properties) so both
RecommendedInfoPopupTail and the body composable share the same onDismissRequest
and PopupProperties, or if you must keep two Popups, wire the same onDismiss and
identical PopupProperties (focusable/dismissOnBackPress/dismissOnClickOutside)
to the tail Popup and the body Popup so taps on the tail, outside clicks, and
back press consistently call onDismiss. Ensure you update references to
tailOffsetX/tailOffsetY/bodyOffsetY and the onDismiss handler accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 10e75b62-64c1-4247-8e0d-a1ebcca0c5fc
📒 Files selected for processing (8)
app/src/main/java/com/smashing/app/core/designsystem/component/bottomsheet/SmashingBottomSheet.ktapp/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingDropdownMenu.ktapp/src/main/java/com/smashing/app/core/designsystem/component/dropdown/SmashingRegionDropdown.ktapp/src/main/java/com/smashing/app/presentation/home/HomeScreen.ktapp/src/main/java/com/smashing/app/presentation/home/component/RecommendedInfoPopup.ktapp/src/main/java/com/smashing/app/presentation/profile/userprofile/UserProfileScreen.ktapp/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.ktapp/src/main/res/values/strings.xml
| .padding( | ||
| top = 16.dp, | ||
| bottom = 47.dp, | ||
| bottom = 12.dp, | ||
| ), |
There was a problem hiding this comment.
옵션 버튼이 없는 케이스에서 하단 여백이 의도보다 작아질 수 있습니다.
현재 구조는 버튼이 있을 때만 12.dp + 35.dp로 사실상 47.dp를 맞추고, 버튼이 없으면 12.dp만 적용됩니다. 같은 컴포넌트에서 케이스별 하단 여백 차이가 커져 레이아웃이 달라질 수 있습니다.
수정 제안 (최소 변경)
+private val BottomSheetBottomPaddingWithButton = 12.dp
+private val BottomSheetBottomPaddingWithoutButton = 47.dp
+private val BottomSheetButtonTailSpacer = 35.dp
+
Column(
modifier = Modifier
.padding(
top = 16.dp,
- bottom = 12.dp,
+ bottom = if (optionalButton != null) {
+ BottomSheetBottomPaddingWithButton
+ } else {
+ BottomSheetBottomPaddingWithoutButton
+ },
),
) {
@@
- Spacer(modifier = Modifier.height(35.dp))
+ Spacer(modifier = Modifier.height(BottomSheetButtonTailSpacer))
}Also applies to: 151-164
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@app/src/main/java/com/smashing/app/core/designsystem/component/bottomsheet/SmashingBottomSheet.kt`
around lines 107 - 110, SmashingBottomSheet currently applies .padding(top =
16.dp, bottom = 12.dp) which causes inconsistent bottom spacing when optional
action buttons exist (they rely on an extra ~35.dp); update the component to
compute a single bottomPadding value (e.g. val bottomPadding = 12.dp + if
(hasActionButtons or actions.isNotEmpty()) 35.dp else 0.dp) and use .padding(top
= 16.dp, bottom = bottomPadding) so both button and no-button cases keep
consistent total bottom spacing; locate the padding call(s) in
SmashingBottomSheet and replace the hardcoded bottom with this computed
bottomPadding.
| Icon( | ||
| imageVector = ImageVector.vectorResource(ic_info), | ||
| contentDescription = null, | ||
| tint = SmashingTheme.colors.iconTertiary, | ||
| modifier = Modifier.noRippleClickable( | ||
| onClick = { isInfoPopupVisible = !isInfoPopupVisible }, | ||
| ), |
There was a problem hiding this comment.
❓ Verification inconclusive
Script executed:
# First, let's read the specific file and lines mentioned
cd app/src/main/java/com/smashing/app/presentation/home/ && wc -l HomeScreen.ktRepository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
stdout:
688 HomeScreen.kt
Script executed:
# Read the file content around lines 368-374
cat -n app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt | sed -n '360,385p'Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
stdout:
360
361 Spacer(modifier = Modifier.width(4.dp))
362
363 Box(
364 modifier = Modifier.onGloballyPositioned { coordinates ->
365 infoIconBoxSize = coordinates.size
366 },
367 ) {
368 Icon(
369 imageVector = ImageVector.vectorResource(ic_info),
370 contentDescription = null,
371 tint = SmashingTheme.colors.iconTertiary,
372 modifier = Modifier.noRippleClickable(
373 onClick = { isInfoPopupVisible = !isInfoPopupVisible },
374 ),
375 )
376 RecommendedInfoTooltip(
377 isVisible = isInfoPopupVisible,
378 anchorHeightPx = infoIconBoxSize.height,
379 onDismiss = { isInfoPopupVisible = false },
380 tailOffsetX = 0.dp,
381 )
382 }
383
384 }
385
Script executed:
# Search for IconButton usage patterns in the codebase
rg "IconButton" --type kotlin -A 3 -B 1 | head -50Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
Script executed:
# Search for contentDescription usage and accessibility patterns
rg "contentDescription" --type kotlin -A 2 -B 2 | head -60Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
stdout:
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- id = if (uiState.isWithdrawalAgreed) ic_checkbox else ic_checkbox_empty,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- ),
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- tint = SmashingTheme.colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- modifier = Modifier
--
app/src/main/java/com/smashing/app/presentation/write/component/SubmitCard.kt- Icon(
app/src/main/java/com/smashing/app/presentation/write/component/SubmitCard.kt- imageVector = ImageVector.vectorResource(ic_crown),
app/src/main/java/com/smashing/app/presentation/write/component/SubmitCard.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/write/component/SubmitCard.kt- tint = SmashingTheme.colors.iconCrown,
app/src/main/java/com/smashing/app/presentation/write/component/SubmitCard.kt- modifier = Modifier
--
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- if (isSelected) ic_check_button else ic_check_button_default
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- ),
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- .padding(
--
app/src/main/java/com/smashing/app/presentation/tierinfo/TierInfoScreen.kt- Image(
app/src/main/java/com/smashing/app/presentation/tierinfo/TierInfoScreen.kt- painter = painterResource(uiState.selectedTierInfoStyle.getImg()),
app/src/main/java/com/smashing/app/presentation/tierinfo/TierInfoScreen.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/tierinfo/TierInfoScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/tierinfo/TierInfoScreen.kt- .size(100.dp),
--
app/src/main/java/com/smashing/app/presentation/splash/SplashScreen.kt- Image(
app/src/main/java/com/smashing/app/presentation/splash/SplashScreen.kt- painter = painterResource(img_splash_logo),
app/src/main/java/com/smashing/app/presentation/splash/SplashScreen.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/splash/SplashScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/splash/SplashScreen.kt- .size(260.dp)
--
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- Icon(
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- imageVector = ImageVector.vectorResource(ic_warning),
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt: contentDescription = "Error",
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- tint = SmashingTheme.colors.iconError,
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- )
--
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- Icon(
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- imageVector = ImageVector.vectorResource(ic_check),
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt: contentDescription = "Success",
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- tint = SmashingTheme.colors.iconSuccess,
app/src/main/java/com/smashing/app/presentation/signup/component/nickname/NicknameInputTextField.kt- )
--
app/src/main/java/com/smashing/app/presentation/signup/component/SignUpFinish.kt- Icon(
app/src/main/java/com/smashing/app/presentation/signup/component/SignUpFinish.kt- painter = painterResource(ic_check_onboarding),
app/src/main/java/com/smashing/app/presentation/signup/component/SignUpFinish.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/signup/component/SignUpFinish.kt- tint = Color.Unspecified,
app/src/main/java/com/smashing/app/presentation/signup/component/SignUpFinish.kt- )
--
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- Icon(
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- imageVector = ImageVector.vectorResource(genderIcon),
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- tint = if(isCardEnabled) colors.iconPrimaryReverse else colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- )
--
app/src/main/java/com/smashing/app/presentation/confirmreview/component/ConfirmReviewCard.kt- imageVector = (ImageVector.vectorResource(id = iconId)),
app/src/main/java/com/smashing/app/presentation/confirmreview/component/ConfirmReviewCard.kt- modifier = Modifier.size(72.dp),
app/src/main/java/com/smashing/app/presentation/confirmreview/component/ConfirmReviewCard.kt: contentDescription = null,
app/src/main/java/com/smashing/app/presentation/confirmreview/component/ConfirmReviewCard.kt- tint = Color.Unspecified,
app/src/main/java/com/smashing/app/presentation/confirmreview/component/ConfirmReviewCard.kt- )
--
Script executed:
# Check if there are any accessibility string resources
fd "strings" -t f | grep -E "\.xml$|\.kt$" | xargs grep -l "accessibility\|content_description" 2>/dev/null | head -10Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
Script executed:
# Search for the noRippleClickable modifier definition
rg "noRippleClickable" --type kotlin -B 2 -A 10Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
stdout:
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingAndroidTheme
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-import com.smashing.app.presentation.withdraw.type.WithdrawalDeletedType
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-import com.smashing.app.R.drawable.ic_checkbox
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-import com.smashing.app.R.drawable.ic_checkbox_empty
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-fun WithdrawRoute(
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- navigateUp: () -> Unit,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- navigateToLogin: () -> Unit,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- modifier: Modifier = Modifier,
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- viewModel: WithdrawViewModel = hiltViewModel(),
--
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- .size(24.dp)
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- onClick = {
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- onWithdrawalAgreedChange(!uiState.isWithdrawalAgreed)
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- }
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- ),
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- )
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- Spacer(modifier = Modifier.width(4.dp))
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt-
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/withdraw/WithdrawScreen.kt- text = stringResource(withdraw_agreement_text),
--
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-import com.smashing.app.core.designsystem.theme.SmashingAndroidTheme
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-import com.smashing.app.data.type.ReviewRatingType
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-@Composable
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-fun ReviewRatingCard(
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- selectedItem: ReviewRatingType?,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- onItemClick: (ReviewRatingType) -> Unit,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- modifier: Modifier = Modifier,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-) {
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- val ratingList = ReviewRatingType.entries
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt-
--
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- Column(
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- modifier = modifier
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt: .noRippleClickable(onClick = onClick),
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- horizontalAlignment = Alignment.CenterHorizontally,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- verticalArrangement = Arrangement.Center,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- ) {
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- Icon(
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- imageVector = ImageVector.vectorResource(
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- if (isSelected) ic_check_button else ic_check_button_default
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- ),
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- contentDescription = null,
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/write/component/ReviewRatingCard.kt- .padding(
--
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import com.smashing.app.data.model.search.SuggestionItemModel
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import com.smashing.app.presentation.search.component.SearchEmpty
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import kotlinx.collections.immutable.ImmutableList
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-import kotlinx.collections.immutable.persistentListOf
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt-fun SearchInputRoute(
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- navigateToSearchMain: () -> Unit,
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- navigateToUserProfile: (String) -> Unit,
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- modifier: Modifier = Modifier,
--
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- .fillMaxWidth()
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- onClick = { onSuggestionItemClick(item.userProfileId) },
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- )
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- .padding(vertical = 12.dp)
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- .padding(start = 16.dp),
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- )
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- }
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- } else {
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- SearchEmpty(
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- title = stringResource(search_input_empty_title),
app/src/main/java/com/smashing/app/presentation/search/input/SearchInputScreen.kt- subTitle = stringResource(search_input_empty_subtitle),
--
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.core.designsystem.state.TopBarState
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingAndroidTheme
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.data.type.ReportType
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.presentation.report.ReportContract.SideEffect.ReportAlreadyReported
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-import com.smashing.app.presentation.report.ReportContract.SideEffect.ReportSubmitted
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt-fun ReportRoute(
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- navigateUp: () -> Unit,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- modifier: Modifier = Modifier,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- viewModel: ReportViewModel = hiltViewModel(),
--
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- modifier = modifier
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- .fillMaxWidth()
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt: .noRippleClickable(onClick = onClick),
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- verticalAlignment = Alignment.CenterVertically,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- ) {
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- Icon(
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- imageVector = ImageVector.vectorResource(
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- if (isSelected) ic_radio_fill else ic_radio_empty,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- ),
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- contentDescription = null,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- tint = SmashingTheme.colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- modifier = Modifier.size(24.dp),
app/src/main/java/com/smashing/app/presentation/report/ReportScreen.kt- )
--
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-import com.smashing.app.core.designsystem.theme.SmashingAndroidTheme
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-import kotlinx.collections.immutable.ImmutableList
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-import kotlinx.collections.immutable.persistentListOf
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-@Composable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-fun SearchTopBar(
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- selectedRegion: String,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- regionItems: ImmutableList<String>,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- onRegionDropdownClick: (String) -> Unit,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- onSearchClick: () -> Unit,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- onRegionSelectClick: () -> Unit,
--
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- tint = colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt: .noRippleClickable(onClick = onSearchClick)
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- )
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- }
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-}
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-@Preview(showBackground = true)
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-@Composable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt-private fun SearchTopBarPreview() {
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- SmashingAndroidTheme {
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/SearchTopBar.kt- SearchTopBar(
--
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import com.smashing.app.core.designsystem.theme.primary300
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import com.smashing.app.core.extension.dropShadow
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import com.smashing.app.data.model.rank.UserRank
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import com.smashing.app.data.type.TierType
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import com.smashing.app.presentation.ranking.component.Ranker
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-import kotlinx.collections.immutable.toImmutableList
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-fun RankingRoute(
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- navigateUp: () -> Unit,
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- navigateToProfile: (String) -> Unit,
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- navigateToMyProfile: () -> Unit,
--
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- .navigationBarsPadding()
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- onClick = {}
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- }
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- }
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-}
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt-private fun MyRanking(
app/src/main/java/com/smashing/app/presentation/ranking/RankingScreen.kt- myRank: UserRank,
--
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.data.model.rank.UserRank
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.data.type.TierType
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.presentation.ranking.type.RankerType
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.presentation.ranking.type.RankerType.FIRST
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.presentation.ranking.type.RankerType.SECOND
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import com.smashing.app.presentation.ranking.type.RankerType.THIRD
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import kotlinx.collections.immutable.ImmutableList
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-import kotlinx.collections.immutable.toImmutableList
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-private val SIDE_PADDING = 16.dp
--
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- shape = CircleShape,
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- onClick = { onProfileClick(userRank.userProfileId) }
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- ),
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- Text(
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- text = userRank.nickname,
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- textAlign = TextAlign.Center,
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- maxLines = 1,
--
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- .fillMaxWidth()
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- onClick = { onProfileClick(userRank.userProfileId) }
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- ),
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- )
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- }
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt-
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- Box(
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- .padding(horizontal = sidePadding)
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- .width(contentWidth),
app/src/main/java/com/smashing/app/presentation/ranking/component/RankerItem.kt- ) {
--
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.core.designsystem.theme.gray300
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.presentation.search.searchmain.style.FilterStyle
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.presentation.search.searchmain.style.FilterStyle.DEFAULT
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.presentation.search.searchmain.style.FilterStyle.VARIANT
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-import com.smashing.app.presentation.search.searchmain.style.FilterStyleData
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-@Composable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-fun MatchingSearchFilterChip(
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- style: FilterStyle,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- text: String,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- onFilterClick: () -> Unit,
--
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- shape = RoundedCornerShape(999.dp),
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- )
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt: .noRippleClickable(onClick = onFilterClick)
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- .padding(vertical = 5.dp)
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- .padding(start = 14.dp, end = 8.dp),
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- verticalAlignment = Alignment.CenterVertically,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- ) {
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- Text(
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- text = text,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- color = filterStyle.txtColor,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- )
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-
--
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- contentDescription = null,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- modifier = if (style == VARIANT) {
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt: Modifier.noRippleClickable(onClick = onFilterDelete)
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- } else {
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- Modifier
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- },
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- tint = filterStyle.iconTint,
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- )
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt- }
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-}
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-@ReadOnlyComposable
app/src/main/java/com/smashing/app/presentation/search/searchmain/component/MatchingSearchFilterChip.kt-@Composable
--
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-import com.smashing.app.presentation.signup.component.SignUpTitle
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-import com.smashing.app.R.string.sign_up_location_title
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-import com.smashing.app.R.string.sign_up_location_subtitle
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-@Composable
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-fun SignUpLocation(
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- addressText: String ,
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- isAddressExist: Boolean,
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- onAddressClick: () -> Unit,
--
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- shape = RoundedCornerShape(8.dp),
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- )
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- onClick = onAddressClick
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- )
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- .padding(vertical = 13.dp)
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- .padding(start = 16.dp),
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- )
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt- }
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-}
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-
app/src/main/java/com/smashing/app/presentation/signup/component/location/SignUpLocation.kt-@Preview(showBackground = true)
--
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-@Composable
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-fun GenderCard (
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- `@DrawableRes` genderIcon: Int,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- genderText: String,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- onCardClick: () -> Unit,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- modifier: Modifier = Modifier,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- isCardEnabled: Boolean = false,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt-){
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- Column(
--
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- color = colors.borderSecondary,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- )
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- onClick = onCardClick,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- ),
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- verticalArrangement = Arrangement.Center,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- horizontalAlignment = Alignment.CenterHorizontally,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- ) {
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- Icon(
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- imageVector = ImageVector.vectorResource(genderIcon),
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- contentDescription = null,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- tint = if(isCardEnabled) colors.iconPrimaryReverse else colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/signup/component/gender/GenderCard.kt- )
--
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.typography
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-import com.smashing.app.core.extension.openUrl
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-import com.smashing.app.presentation.mypage.component.MyPageProfileHeader
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-@Composable
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-fun MyPageRoute(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- navigateUp: () -> Unit,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- navigateToMyProfile: () -> Unit,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- navigateToLogin: () -> Unit,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- navigateToWithDraw: () -> Unit,
--
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt: .noRippleClickable(onClick = onLogoutClick)
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.height(8.dp))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Row(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- verticalAlignment = Alignment.CenterVertically,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- ) {
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- text = stringResource(mypage_account_withdraw),
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
--
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- tint = colors.iconPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt: .noRippleClickable(onClick = onWithDrawClick)
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- }
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.height(26.dp))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- HorizontalDivider(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- thickness = 2.dp,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.bgSurface,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.height(26.dp))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- text = stringResource(mypage_policy_title),
--
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt: .noRippleClickable(onClick = { onPolicyPrivacyClick(policyPrivacyLink) })
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.height(8.dp))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- text = stringResource(mypage_policy_terms),
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt: .noRippleClickable(onClick = { onPolicyTermsClick(policyTermsLink) })
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.height(8.dp))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt-
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Row(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- verticalAlignment = Alignment.CenterVertically,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- ) {
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- text = stringResource(mypage_info_version),
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtPrimary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt: .noRippleClickable(onClick = { onVersionClick(versionLink) })
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Spacer(modifier = Modifier.weight(1f))
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- Text(
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- text = "ver ${BuildConfig.VERSION_NAME}",
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- style = typography.sm.medium14,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- color = colors.txtTertiary,
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- )
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- }
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- }
app/src/main/java/com/smashing/app/presentation/mypage/MypageScreen.kt- }
--
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme.colors
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-import kotlinx.collections.immutable.ImmutableList
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-import kotlinx.collections.immutable.toImmutableList
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-@Composable
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-fun MainBottomBar(
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- isVisible: Boolean,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- tabs: ImmutableList<MainTab>,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- currentTab: MainTab?,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- onTabSelected: (MainTab) -> Unit,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- modifier: Modifier = Modifier,
--
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- Column(
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- modifier = modifier
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt: .noRippleClickable(onClick),
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- horizontalAlignment = Alignment.CenterHorizontally,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- ) {
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- Icon(
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- imageVector = ImageVector.vectorResource(iconRes),
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- contentDescription = stringResource(tab.titleRes),
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- tint = iconColor,
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- )
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt-
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- Text(
app/src/main/java/com/smashing/app/presentation/main/component/MainBottomBar.kt- text = stringResource(tab.titleRes),
--
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.core.designsystem.style.toTierInfoStyle
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.core.designsystem.theme.SmashingTheme
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt:import com.smashing.app.core.extension.noRippleClickable
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.model.profile.ProfileInfo
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.model.profile.home.MyProfileTierInfo
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.model.rank.UserRank
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.model.search.SearchMainItemModel
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.type.GameResultStatusType
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.type.GenderType
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.type.SportType
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.data.type.TierType
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.presentation.home.component.CloseMatching
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-import com.smashing.app.presentation.home.component.HomeDropdown
--
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- color = SmashingTheme.colors.txtTertiary,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- modifier = Modifier
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt: .noRippleClickable(
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- onClick = navigateToMatchingAccepted
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- ),
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- )
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- }
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- Spacer(modifier = Modifier.height(20.dp))
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt-
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- CloseMatching(
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- myProfileId = uiState.activeMyProfile.myProfileInfo.profileId,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- myNickname = uiState.activeMyProfile.nickname,
--
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- contentDescription = null,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- tint = SmashingTheme.colors.iconTertiary,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt: modifier = Modifier.noRippleClickable(
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- onClick = { isInfoPopupVisible = !isInfoPopupVisible },
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- ),
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- )
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- RecommendedInfoTooltip(
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- isVisible = isInfoPopupVisible,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- anchorHeightPx = infoIconBoxSize.height,
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- onDismiss = { isInfoPopupVisible = false },
app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt- tailOffsetX = 0.dp,
app/src/mai
... [stdout truncated: output exceeded 50000 characters (144228 total). Please modify your command to reduce output size, for example by:
- Using grep/rg to filter results
- Using head/tail to limit lines
- Using --max-count flag with grep/rg
- Processing output with awk/sed to extract only needed information]
Script executed:
# Check for any Icon size definitions in HomeScreen.kt
rg "Icon\(" --type kotlin app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt -A 5 | head -40Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
stdout:
Icon(
imageVector = ImageVector.vectorResource(ic_info),
contentDescription = null,
tint = SmashingTheme.colors.iconTertiary,
modifier = Modifier.noRippleClickable(
onClick = { isInfoPopupVisible = !isInfoPopupVisible },
Script executed:
# Search for accessibility best practices or similar info icon implementations
rg "info.*Icon\|infoIcon" --type kotlin -B 2 -A 5 | head -50Repository: TEAM-SMASHING/SMASHING-ANDROID
Repository: TEAM-SMASHING/SMASHING-ANDROID
Exit code: 0
클릭 가능한 정보 아이콘에 접근성 레이블과 충분한 터치 영역이 없습니다.
Line 370의 contentDescription = null 상태에서 Line 372의 noRippleClickable 클릭 동작을 붙이면 TalkBack 사용자가 이 컨트롤의 의미를 알기 어렵습니다. 또한 아이콘에 명시적 크기가 지정되지 않아 현재 hit area가 매우 작아 터치 접근성도 낮습니다. IconButton으로 감싸거나 최소 48.dp 크기의 컨테이너로 감싼 후, 별도 string resource로 설명 라벨을 추가해 주세요. 실기기에서 TalkBack/Accessibility Scanner로 버튼 이름과 터치 타깃이 정상 노출되는지 확인 부탁드립니다.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@app/src/main/java/com/smashing/app/presentation/home/HomeScreen.kt` around
lines 368 - 374, The info Icon currently has contentDescription = null and uses
noRippleClickable (Icon(... modifier = Modifier.noRippleClickable(...)))
resulting in poor accessibility and a tiny hit area; replace the raw Icon
clickable with an accessible container—either wrap the Icon in an IconButton
(preferred) or a Box/Surface with Modifier.size(48.dp) and a clickable/onClick
that toggles isInfoPopupVisible; add a string resource (e.g.
R.string.info_icon_description) and set contentDescription =
stringResource(R.string.info_icon_description) on the Icon (or provide semantics
with .semantics { contentDescription = ... }), remove noRippleClickable, keep
tint = SmashingTheme.colors.iconTertiary, and verify TalkBack/Accessibility
Scanner reports the button label and ≥48.dp touch target.
seungjunGong
left a comment
There was a problem hiding this comment.
바텀 시트 같은 경우는 한번 디자인 쪽에 물어보는 것도 좋을 거 같습니다.
툴팁의 경우는 저는 좋은 거 같아요 고생하셨습니다..!
| isDivided: Boolean = true, | ||
| minWidthExtra: Dp = 0.dp, | ||
| bgColor: Color = colors.bgSurface, | ||
| bolderColor: Color = colors.borderPrimary, |
There was a problem hiding this comment.
좋아요좋아요 바로 수정해두었습니다!! 뀼
Related issue 🛠
Work Description ✏️
Screenshot 📸
Screen_recording_20260331_005505.mp4
Uncompleted Tasks 😅
To Reviewers 📢
수정사항과 관련해 몇가지 남겨두겠습니다!!
다 만들고 나서 balloon을 쓸걸 그랬나 하는 생각도 했어요 ㅎㅎ더 좋은 방법이 생각나면 나중에 추가로 수정해볼게요.Summary by CodeRabbit
릴리스 노트
New Features
Style
Chores