Skip to content

PrezelDialog 컴포넌트 추가 및 modal 컴포넌트 구조 정리#94

Merged
moondev03 merged 5 commits intodevelopfrom
feat/#93-ds-dialog
Apr 3, 2026
Merged

PrezelDialog 컴포넌트 추가 및 modal 컴포넌트 구조 정리#94
moondev03 merged 5 commits intodevelopfrom
feat/#93-ds-dialog

Conversation

@moondev03
Copy link
Copy Markdown
Member

@moondev03 moondev03 commented Apr 3, 2026

📌 작업 내용

  • 디자인시스템에 PrezelDialogPrezelDialogScope.Action을 추가했습니다.
  • Snackbar 컴포넌트를 component/modal/snackbar 패키지로 이동하고 참조 경로를 정리했습니다.

🧩 관련 이슈


📸 스크린샷

Action Dialog
image image

📢 논의하고 싶은 내용

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 모달 대화상자 컴포넌트 추가: 제목·설명과 사용자 정의 가능한 작업 버튼 제공
    • 대화상자 작업 유형 지원: 기본, 긍정, 부정 스타일의 버튼 옵션 추가
  • 개선 사항

    • 스낵바 구현이 모달형으로 통합되어 알림 표현 방식이 일관화됨
    • 테마의 기본 텍스트 색상 조정으로 시각적 가독성 향상

@moondev03 moondev03 self-assigned this Apr 3, 2026
@moondev03 moondev03 requested a review from HamBeomJoon as a code owner April 3, 2026 08:55
@moondev03 moondev03 added the ✨ feat 새로운 기능 추가 또는 기존 기능 확장 label Apr 3, 2026
@moondev03 moondev03 linked an issue Apr 3, 2026 that may be closed by this pull request
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4de4c39a-5af5-45d7-b5ef-3cd220ef42c7

📥 Commits

Reviewing files that changed from the base of the PR and between 6e54529 and 11d6868.

📒 Files selected for processing (1)
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialogScope.kt
🚧 Files skipped from review as they are similar to previous changes (1)
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialogScope.kt

📝 Walkthrough

Walkthrough

스낵바 구현을 component.modal.snackbar 패키지로 옮기고 관련 임포트를 업데이트했습니다. 디자인 시스템에 새 모달 다이얼로그 컴포넌트(PrezelDialogPrezelDialogScope)를 추가했고, PrezelTheme의 기본 LocalContentColor를 textLarge에서 textRegular로 변경했습니다.

Changes

Cohort / File(s) Summary
스낵바 패키지 재구성
Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/snackbar/*, Prezel/app/src/main/java/com/team/prezel/ui/DoubleBackToExitHandler.kt, Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/PrezelNavigationBar.kt, Prezel/feature/login/impl/src/main/java/com/team/prezel/feature/login/impl/landing/LoginScreen.kt
PrezelSnackbar, PrezelSnackbarHost, showPrezelSnackbar 등 스낵바 관련 소스의 패키지 선언을 ...component.snackbar...component.modal.snackbar로 변경하고 해당 경로로 임포트를 갱신함.
PrezelDialog 모달 컴포넌트 추가
Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialog.kt, Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialogScope.kt
새로운 PrezelDialog 컴포저블과 PrezelDialogScope(ActionType: DEFAULT/GOOD/BAD 및 Action 컴포저블) 추가. 다이얼로그 구조, 스타일, 미리보기 컴포저블 포함.
테마 색상 업데이트
Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/theme/PrezelTheme.kt
CompositionLocalProvider에서 공급하는 LocalContentColor 값을 colorScheme.textLargecolorScheme.textRegular로 변경함.

Possibly related PRs

  • PrezelSnackBar 구현 #47: 동일한 스낵바 심볼들을 modal.snackbar로 이동한 변경과 직접적으로 중복/연관되는 코드(PrezelSnackbar, PrezelSnackbarHost, showPrezelSnackbar)를 다룹니다.
  • PrezelButton 구현 #25: PrezelTheme의 CompositionLocal(기본 콘텐츠 색상) 변경과 관련된 테마 공급값 수정을 포함합니다.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
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 (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항을 명확하게 요약합니다. 새로운 PrezelDialog 컴포넌트 추가와 modal 구조 정리라는 핵심 내용을 직관적으로 전달합니다.
Description check ✅ Passed PR 설명이 저장소 템플릿의 필수 섹션(작업 내용, 관련 이슈, 스크린샷)을 모두 포함하고 있으며, 구체적인 변경사항과 시각적 증거를 제공합니다.
Linked Issues check ✅ Passed PR의 모든 코드 변경사항이 #93의 요구사항을 충족합니다: PrezelDialog 컴포넌트 구현, 다양한 액션 타입 지원, 재사용 가능한 PrezelDialogScope 제공, 디자인 사양 반영.
Out of Scope Changes check ✅ Passed PR은 관련 이슈의 범위 내 변경사항만 포함합니다. Snackbar 패키지 이동은 modal 구조 정리의 일부이며, 모든 변경이 #93의 목표와 연관되어 있습니다.

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


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
Contributor

@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: 3

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

Inline comments:
In
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialog.kt`:
- Around line 37-44: The dialog currently sets usePlatformDefaultWidth = false
and the content uses modifier.fillMaxWidth(), allowing the dialog to expand to
the full screen; update the PrezelDialog configuration and content modifier to
constrain width: either set usePlatformDefaultWidth = true on the Dialog
parameters or keep usePlatformDefaultWidth = false but replace Column's
modifier.fillMaxWidth() with a width constraint (e.g., Modifier.widthIn(max =
<desired dp>) and center the Column) so the dialog remains a compact centered
modal; adjust the modifier references in PrezelDialog.kt (the Dialog args:
dismissOnClickOutside, usePlatformDefaultWidth and the Column's
modifier.fillMaxWidth()) accordingly.

In
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialogScope.kt`:
- Around line 30-40: Action 버튼 역할에 대한 시맨틱이 빠져 있어 스크린리더가 컨트롤을 인식하지 못하므로,
PrezelDialogScope의 액션 영역에서 사용되는 PrezelTouchArea 콜에 버튼 역할(Role.Button)을 명시해 주세요;
PrezelTouchArea를 호출하는 위치(현재 PrezelDialogScope.kt의 PrezelTouchArea(onClick =
onClick, shape = PrezelTheme.shapes.V4) { ... })에 Modifier.semantics { role =
Role.Button }를 적용하거나 PrezelTouchArea의 파라미터/구현에 role 설정을 추가하여 PrezelCheckbox에서
사용한 패턴과 동일하게 버튼 시맨틱을 설정하도록 수정하세요.

In
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/theme/PrezelTheme.kt`:
- Line 72: LocalContentColor is being set to colorScheme.textRegular which makes
unspecified Text composables inherit a too-light color in dark mode; change the
provider in PrezelTheme.kt to use colorScheme.textLarge as the default
LocalContentColor so unspecified Text keeps the original, higher-contrast color,
and only set colorScheme.textRegular on individual Text usages that explicitly
need a lighter tone (e.g., replace the LocalContentColor provides
colorScheme.textRegular line with provides colorScheme.textLarge and audit
usages like TermsScreen/HistoryScreen to remove redundant explicit colors).
🪄 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: 11ed4100-8d54-4fdc-b149-ef82c8251361

📥 Commits

Reviewing files that changed from the base of the PR and between b739342 and 6e54529.

📒 Files selected for processing (8)
  • Prezel/app/src/main/java/com/team/prezel/ui/DoubleBackToExitHandler.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/PrezelNavigationBar.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialog.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/dialog/PrezelDialogScope.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/snackbar/PrezelSnackbar.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/modal/snackbar/SnackbarHost.kt
  • Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/theme/PrezelTheme.kt
  • Prezel/feature/login/impl/src/main/java/com/team/prezel/feature/login/impl/landing/LoginScreen.kt

Copy link
Copy Markdown
Contributor

@HamBeomJoon HamBeomJoon left a comment

Choose a reason for hiding this comment

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

고생하셨습니다 👍

@moondev03 moondev03 merged commit f4d5771 into develop Apr 3, 2026
2 checks passed
@moondev03 moondev03 deleted the feat/#93-ds-dialog branch April 3, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feat 새로운 기능 추가 또는 기존 기능 확장

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PrezelDialog 구현

2 participants