Skip to content

Fix FolderCreateScreen based on QA#1100

Merged
yuni-ju merged 3 commits intodevelopfrom
qa/myfolder_add
Apr 28, 2026
Merged

Fix FolderCreateScreen based on QA#1100
yuni-ju merged 3 commits intodevelopfrom
qa/myfolder_add

Conversation

@yuni-ju
Copy link
Copy Markdown
Member

@yuni-ju yuni-ju commented Apr 20, 2026

작업 내용

  • 해당 페이지의 여백 조정
  • 토글 버튼 조정
  • 텍스트필드 라벨 색상 변경

참고

모듈별 요약 및 위험 평가

1. 기능적 영향 및 사용자 대면 동작 변경

FolderCreateScreen (폴더 생성 화면)

  • 여백 조정: Column의 수평 padding을 18.dp에서 20.dp로 증가시켜 QA 명세와 일치하도록 조정
  • 토글 버튼 레이아웃: ToggleButtonWithLabel에 .fillMaxWidth().align(Alignment.End) modifier를 추가하여 토글 버튼이 우측 정렬되고 전체 너비를 차지하도록 변경
    • 결과: 토글과 우측 여백 사이의 과도한 수평 간격이 감소

텍스트필드 라벨 색상 변경

  • DayoTextField, DayoPasswordTextField, DayoTimerTextField: 라벨 텍스트 색상을 Gray4_C5CAD2 (밝은 회색)에서 Gray3_9FA5AE (더 어두운 회색)로 변경
    • 영향 범위: 전체 앱의 텍스트필드 라벨이 더 진하고 가시성이 높아짐

ToggleButtonWithLabel 컴포넌트 리팩토링

  • Switch.kt의 ToggleButtonWithLabel이 선택적 modifier 파라미터를 추가하여 호출자가 레이아웃을 제어 가능하도록 변경
  • 기존 hardcoded modifier (padding(18.dp), fillMaxWidth(), wrapContentHeight())는 제거

2. 위험 지점

하위호환성 위험 (중간 수준)

  • FolderEditScreen.kt에서 ToggleButtonWithLabel을 호출할 때 modifier 파라미터를 전달하지 않음
    • 현재: 기본값인 Modifier = Modifier를 사용하므로 컴파일은 통과하지만, 레이아웃이 예상과 다를 수 있음
    • FolderEditScreen의 토글 버튼이 FolderCreateScreen과 다르게 렌더링될 가능성 존재
    • 필수 확인: FolderEditScreen도 FolderCreateScreen과 동일하게 modifier를 적용했는지 검증 필요

색상 일관성 위험 (낮음)

  • TextField 라벨 색상 변경이 TextField를 사용하는 모든 화면에 영향
    • 영향받는 화면: SignInScreen, SignInEmailScreen, ResetPasswordScreen, WithdrawScreen, WriteScreen 등 (약 20개 화면)
    • 기존 명시적 라벨 색상 오버라이드가 없는 경우, 모두 동일하게 색상이 변경되므로 일관성은 유지됨
    • 주의: 특정 화면에서 라벨 색상을 명시적으로 지정한 경우는 영향 없음

WriteFolderNewScreen 불일치

  • WriteFolderNewScreen.kt에는 로컬 ToggleButtonWithLabel 함수가 정의되어 있음 (중복 구현)
    • 이 파일의 로컬 함수는 변경되지 않았으므로 WriteFolderNewScreen의 토글은 기존 동작 유지
    • 향후 일관성을 위해 Switch.kt의 공용 컴포넌트로 통일 필요

3. 필수 검증 및 후속 테스트

UI 레이아웃 검증 (필수)

  1. FolderCreateScreen:

    • 토글 버튼이 우측 정렬되고 Figma 디자인 명세와 일치하는지 확인
    • 토글과 우측 여백의 간격이 디자인 명세와 일치하는지 확인
    • 여백 변경(18.dp → 20.dp)이 화면 좌우 여백을 올바르게 조정하는지 확인
  2. FolderEditScreen:

    • 폴더 편집 화면의 토글 버튼이 폴더 생성 화면과 동일하게 렌더링되는지 확인 (현재 modifier 미적용으로 인한 불일치 가능성)
    • 권장: FolderEditScreen의 ToggleButtonWithLabel 호출에도 동일한 modifier 적용 필요

텍스트필드 색상 검증 (필수)

  1. 모든 입력 화면(로그인, 회원가입, 설정 등)에서 라벨 텍스트 가시성 확인
  2. 라벨 색상 변경이 다크 모드에서도 충분한 대비를 제공하는지 확인
  3. Gray3_9FA5AE와 배경색의 명도 대비 비율 검증 (WCAG 접근성 기준: 최소 4.5:1)

통합 테스트

  • 폴더 생성 및 편집 플로우 전체 테스트
  • WriteFolderNewScreen과 FolderCreateScreen의 토글 버튼 외형 비교
  • 다양한 화면 크기(휴대폰, 태블릿)에서의 레이아웃 일관성 확인

회귀 테스트

  • TextField를 사용하는 모든 화면에서 라벨 가시성 확인
  • 기존 라벨 색상을 명시적으로 오버라이드한 부분이 있는지 검색 및 검증

@yuni-ju yuni-ju requested a review from DongJun-H April 20, 2026 12:53
@yuni-ju yuni-ju self-assigned this Apr 20, 2026
@yuni-ju yuni-ju added the bug Something isn't working label Apr 20, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Walkthrough

FolderCreateScreen의 레이아웃 패딩 조정과 ToggleButtonWithLabel 컴포넌트의 수정자 제어권을 호출자에게 이관했습니다. 또한 텍스트 필드의 라벨 색상을 일관되게 업데이트했습니다.

Changes

Cohort / File(s) Summary
ToggleButtonWithLabel 수정자 제어 이관
presentation/src/main/java/daily/dayo/presentation/view/Switch.kt, presentation/src/main/java/daily/dayo/presentation/screen/folder/FolderCreateScreen.kt
ToggleButtonWithLabelmodifier 파라미터 추가 및 기존 하드코딩된 패딩·너비 설정 제거. FolderCreateScreen에서 호출 시 명시적으로 fillMaxWidth().align(Alignment.End) 적용하여 토글 레이아웃 제어를 호출자로 위임.
텍스트 필드 라벨 색상 통일
presentation/src/main/java/daily/dayo/presentation/view/TextField.kt
DayoTextField, DayoPasswordTextField, DayoTimerTextField의 라벨 색상을 Gray4_C5CAD2에서 Gray3_9FA5AE로 변경 (미포커스·포커스 상태 모두 적용).
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning TextField.kt의 라벨 색상 변경(Gray4_C5CAD2 → Gray3_9FA5AE)은 PR 목표에서 언급된 '텍스트필드 라벨 색상 변경'이지만, 연결된 이슈 #1050에는 포함되지 않아 범위 초과로 판단됩니다. TextField 색상 변경 사항이 별도 이슈 #1052와 연관되어 있는지 확인하고, 필요시 해당 이슈 번호를 PR에 명시하거나 별도 PR로 분리하세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 주요 변경사항을 명확하게 요약하고 있습니다. 'FolderCreateScreen based on QA'는 QA 피드백에 따른 FolderCreateScreen 수정이라는 핵심 내용을 간결하게 전달합니다.
Linked Issues check ✅ Passed 코드 변경사항이 #1050의 요구사항을 충족합니다. ToggleButtonWithLabel에 modifier 파라미터 추가로 호출처에서 레이아웃 제어 가능하며, FolderCreateScreen에서 토글의 우측 정렬과 간격 조정을 구현했습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch qa/myfolder_add

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9081bd0fa4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 27 to +30
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.End,
modifier = Modifier
.padding(18.dp)
.fillMaxWidth()
.wrapContentHeight()
modifier = modifier
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore full-width defaults in shared toggle component

By changing ToggleButtonWithLabel to use a plain modifier default, the component no longer applies its previous fillMaxWidth/padding behavior for existing call sites that don’t pass a modifier (for example, FolderEditScreen). In those screens, Arrangement.End stops working as intended because the row now wraps content and is centered by the parent column, causing an unintended layout regression outside the QA-targeted screen.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@presentation/src/main/java/daily/dayo/presentation/view/Switch.kt`:
- Around line 24-30: The Switch composable's default Modifier is an empty
Modifier which breaks existing callers that rely on the original layout (e.g.,
FolderEditScreen); update the default parameter in the Switch function (the
modifier parameter in Switch) to preserve the previous layout by setting it to
the combination of padding(18.dp), fillMaxWidth() and wrapContentHeight(), or
alternatively keep default empty but update all call sites (like
FolderEditScreen) to pass the original Modifier; change the default in Switch to
the original layout modifiers so callers that don't pass a modifier maintain the
prior appearance.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9362ebb2-00f7-4d7f-9d86-70fefc6d76de

📥 Commits

Reviewing files that changed from the base of the PR and between 70ed45c and 9081bd0.

📒 Files selected for processing (3)
  • presentation/src/main/java/daily/dayo/presentation/screen/folder/FolderCreateScreen.kt
  • presentation/src/main/java/daily/dayo/presentation/view/Switch.kt
  • presentation/src/main/java/daily/dayo/presentation/view/TextField.kt

Comment on lines +24 to +30
onToggleChanged: (Boolean) -> Unit,
modifier: Modifier = Modifier
) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.End,
modifier = Modifier
.padding(18.dp)
.fillMaxWidth()
.wrapContentHeight()
modifier = modifier
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

기존 호출부의 토글 레이아웃이 깨질 수 있습니다.

modifier 기본값이 빈 Modifier가 되면서 FolderEditScreen.kt:158-166처럼 modifier를 넘기지 않는 호출부는 기존의 padding(18.dp), fillMaxWidth(), wrapContentHeight() 동작을 잃습니다. 새 화면만 조정하려면 기본값은 기존 레이아웃을 유지하거나, modifier 없는 호출부를 함께 업데이트해 주세요.

🛠️ 기존 기본 레이아웃을 보존하는 수정안
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.layout.wrapContentHeight
 fun ToggleButtonWithLabel(
     label: String,
     isToggled: Boolean,
     onToggleChanged: (Boolean) -> Unit,
-    modifier: Modifier = Modifier
+    modifier: Modifier = Modifier
+        .padding(18.dp)
+        .fillMaxWidth()
+        .wrapContentHeight()
 ) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
onToggleChanged: (Boolean) -> Unit,
modifier: Modifier = Modifier
) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.End,
modifier = Modifier
.padding(18.dp)
.fillMaxWidth()
.wrapContentHeight()
modifier = modifier
onToggleChanged: (Boolean) -> Unit,
modifier: Modifier = Modifier
.padding(18.dp)
.fillMaxWidth()
.wrapContentHeight()
) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.End,
modifier = modifier
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@presentation/src/main/java/daily/dayo/presentation/view/Switch.kt` around
lines 24 - 30, The Switch composable's default Modifier is an empty Modifier
which breaks existing callers that rely on the original layout (e.g.,
FolderEditScreen); update the default parameter in the Switch function (the
modifier parameter in Switch) to preserve the previous layout by setting it to
the combination of padding(18.dp), fillMaxWidth() and wrapContentHeight(), or
alternatively keep default empty but update all call sites (like
FolderEditScreen) to pass the original Modifier; change the default in Switch to
the original layout modifiers so callers that don't pass a modifier maintain the
prior appearance.

@github-project-automation github-project-automation Bot moved this from Todo to In Progress in DAYO 2.0 Apr 28, 2026
@yuni-ju yuni-ju merged commit b2c0f91 into develop Apr 28, 2026
2 checks passed
@yuni-ju yuni-ju deleted the qa/myfolder_add branch April 28, 2026 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[QA] Fix input in MY_folder_add [QA] Fix margin in MY_folder_add

2 participants