Skip to content

[design] #108 아이콘 노출 여부에 대한 다이어로그 컴포넌트 분리#109

Merged
Ojongseok merged 9 commits into
developfrom
design/#108-dialog
Feb 14, 2026
Merged

[design] #108 아이콘 노출 여부에 대한 다이어로그 컴포넌트 분리#109
Ojongseok merged 9 commits into
developfrom
design/#108-dialog

Conversation

@Ojongseok
Copy link
Copy Markdown
Member

@Ojongseok Ojongseok commented Feb 12, 2026

🔗 관련 이슈

📙 작업 설명

  • alert 아이콘 노출 여부에 따른 DoubleButtonAlertDialog / DoubleButtonDialog 분리
  • alert 아이콘 노출 여부에 따른 SingleButtonAlertDialog / SingleButtonDialog 분리
  • SingleButtonWithTextButtonAlertDialog 텍스트 버튼 터치영역 수정
  • :core:ui 모듈 내 SelectDialog 컴포넌트 분리 및 항목 enum class 상수로 정의

📸 스크린샷 또는 시연 영상 (선택)

기능 미리보기 기능 미리보기
DoubleButton
AlertDialog
DoubleButton
Dialog

💬 추가 설명 or 리뷰 포인트 (선택)

  • 사용하고 있는 feature에서의 컴포넌트 변경도 반영하였습니다.
  • alert 아이콘은 SVG 추출 시 블러 효과가 추출되지 않아 PNG로 추출하여 image_dialog_alert.png로 리소스 추가했습니다.

Q. alert 아이콘 노출 여부에 따라 단일 컴포넌트에서 파라미터로 true/false 플래그를 전달하지 않고, 아이콘 노출 여부에 대한 컴포넌트를 두가지로 분리했는데 괜찮으신가요?

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 옵션 선택을 위한 새로운 다이얼로그 컴포넌트 추가
    • 단일 버튼 확인 다이얼로그 추가
    • 이중 버튼 작업 다이얼로그 추가
    • 프로필 이미지 및 앨범 선택 다이얼로그 개선
  • 스타일

    • 알림 다이얼로그의 아이콘을 더 큰 크기의 이미지로 개선

@Ojongseok Ojongseok requested a review from ikseong00 February 12, 2026 16:22
@Ojongseok Ojongseok self-assigned this Feb 12, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 12, 2026

개요

Design System의 Dialog 컴포넌트들에서 벡터 기반 아이콘을 래스터 이미지로 교체하고, 새로운 범용 SelectDialog 컴포넌트를 도입했습니다. Archive와 MyPage 기능 모듈에서 기존의 커스텀 다이얼로그들을 SelectDialog 기반으로 통합 리팩토링했습니다.

변경 사항

Cohort / File(s) 요약
Design System 아이콘 교체
core/designsystem/.../DoubleButtonAlertDialog.kt, core/designsystem/.../SingleButtonAlertDialog.kt, core/designsystem/.../SingleButtonWithTextButtonAlertDialog.kt, core/designsystem/.../WarningDialog.kt, core/designsystem/src/main/res/drawable/icon_dialog_alert.xml
Icon에서 Image로 변경, vectorResource에서 painterResource로 전환, 아이콘 크기를 64.dp로 통일, 불필요한 Color/ImageVector 임포트 제거. 기존 벡터 드로어블 파일 삭제.
새로운 Dialog 컴포넌트
core/designsystem/.../DoubleButtonDialog.kt, core/designsystem/.../SingleButtonDialog.kt, core/ui/.../SelectDialog.kt
세 가지 새로운 공개 Dialog 컴포넌트 추가: 범용 SelectDialog (제네릭 옵션 리스트), SingleButtonDialog (단일 CTA), DoubleButtonDialog (이중 버튼). 각각 DialogProperties와 콜백 커스터마이징 지원.
Archive 기능 - Dialog 통합
feature/archive/impl/.../ArchiveMainScreen.kt, feature/archive/impl/.../ChooseWithAlbumDialog.kt, feature/archive/impl/.../SelectWithAlbumDialog.kt, feature/archive/impl/.../ArchiveMainContract.kt, feature/archive/impl/.../ArchiveMainViewModel.kt
ChooseWithAlbumDialog를 SelectWithAlbumDialog로 리브랜딩, AlbumUploadOption 열거형 추가, 이중 콜백(onClickUploadWithOutAlbum/WithAlbum)을 단일 onSelect(option) 콜백으로 통합. 상태 플래그명 isShowChooseWithAlbumDialog → isShowSelectWithAlbumDialog로 변경.
MyPage 기능 - Dialog 통합
feature/mypage/impl/.../EditProfileScreen.kt, feature/mypage/impl/.../ProfileSettingScreen.kt, feature/mypage/impl/.../ProfileImageChooseDialog.kt, feature/mypage/impl/.../SelectProfileImageDialog.kt, feature/mypage/impl/.../MyPageContract.kt, feature/mypage/impl/.../MyPageViewModel.kt
ProfileImageChooseDialog를 SelectProfileImageDialog로 리브랜딩, ProfileImageOption 열거형 추가, 이중 콜백을 단일 onSelect(option) 콜백으로 통합, DoubleButtonAlertDialog를 DoubleButtonDialog로 업그레이드. 상태 플래그명 isShowImageChooseDialog → isShowImageSelectDialog로 변경, 기존 컴포넌트 파일 삭제.

예상 코드 리뷰 노력

🎯 3 (Moderate) | ⏱️ ~25분

🐰 아이콘들이 새로운 옷을 입고,
다이얼로그는 선택지로 춤을 추네!
SelectDialog의 우아한 등장으로,
버튼의 콜백들이 하나로 모여
더 깔끔한 UI의 향연이 펼쳐지는군요 ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 2
❌ Failed checks (2 warnings)
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.
Merge Conflict Detection ⚠️ Warning ⚠️ Unable to check for merge conflicts: Invalid branch name format
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 "아이콘 노출 여부에 대한 다이어로그 컴포넌트 분리"로, 실제 변경사항의 핵심을 명확하게 반영하고 있습니다.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch design/#108-dialog
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch design/#108-dialog
  • Create stacked PR with resolved conflicts
  • Post resolved changes as copyable diffs in a comment

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
feature/mypage/impl/src/main/java/com/neki/android/feature/mypage/impl/profile/component/SelectProfileImageDialog.kt (1)

10-16: 하드코딩된 한국어 문자열을 string resource로 관리하는 것을 고려해 주세요.

"기본 프로필로 바꾸기", "사진 선택하기" 문자열이 enum에 직접 하드코딩되어 있습니다. 현재 한국어 전용 앱이라면 당장 문제는 없지만, 향후 다국어 지원이나 문자열 일괄 관리를 위해 strings.xml 리소스 사용을 권장합니다.


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.

@Ojongseok Ojongseok changed the title Design/#108 dialog [design] /#108 dialog Feb 12, 2026
@Ojongseok Ojongseok changed the title [design] /#108 dialog [design] #108 dialog Feb 12, 2026
@Ojongseok Ojongseok changed the title [design] #108 dialog [design] #108 아이콘 노출 여부에 대한 다이어로그 컴포넌트 분리 Feb 13, 2026
Copy link
Copy Markdown
Contributor

@ikseong00 ikseong00 left a comment

Choose a reason for hiding this comment

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

좋습니다! 코멘트 확인되시면 머지하셔도 될 것 같습니다.

Q. alert 아이콘 노출 여부에 따라 단일 컴포넌트에서 파라미터로 true/false 플래그를 전달하지 않고, 아이콘 노출 여부에 대한 컴포넌트를 두가지로 분리했는데 괜찮으신가요?

분리가 좋은 것 같아요!

@Ojongseok Ojongseok merged commit 65134ac into develop Feb 14, 2026
4 checks passed
@Ojongseok Ojongseok deleted the design/#108-dialog branch February 15, 2026 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants