Skip to content

[UI] 모임 페이지 (#25)#29

Closed
rbqks529 wants to merge 5 commits intoTHIP-TextHip:developfrom
rbqks529:UI-#25]
Closed

[UI] 모임 페이지 (#25)#29
rbqks529 wants to merge 5 commits intoTHIP-TextHip:developfrom
rbqks529:UI-#25]

Conversation

@rbqks529
Copy link
Collaborator

@rbqks529 rbqks529 commented Jun 30, 2025

➕ 이슈 링크


🔎 작업 내용

  • 어떤 부분이 구현되었는지 설명해주세요

  • 내 모임방(진행 중, 모집 중)

  • 네비게이션과 연결된 메인 모임 페이지

  • 모임방 페이지(참여, 참여 취소, 모집 마감)

  • 주연이가 부탁한 컴포넌트 수정


📸 스크린샷

**내 모임방 (진행 중)** ![image](https://github.com/user-attachments/assets/e6725eb4-a6ef-4b1d-9fe8-cdfb8829fdde)

내 모임방 (모집 중)
image

네비게이션과 연결된 메인 모임 페이지
image

모임방 페이지(참여, 참여 취소, 모집 마감)
image

컴포넌트 수정
FormTextFieldDefault
image

CardAlarm
image


😢 해결하지 못한 과제

  • 모임방 참여 페이지 배경

  • 페이지에서 컴포넌트를 눌렀을 때 click event(화면 연결)

  • CardAlarm에서 ~시간 전과 날짜를 보여주는 부분은 서버에서 어떻게 데이터를 보내주는지에 따라서 많이 바뀔 것 같아서 검토가 필요할듯 합니당


📢 리뷰어들에게

  • 기존의 form이나 버튼 같은 component도 이름을 수정한게 있어서 유심히 봐주시면 감사할거 같습니다~

Summary by CodeRabbit

  • 신규 기능

    • 알림 카드에서 배지 텍스트를 동적으로 표시할 수 있도록 개선되었습니다.
    • 입력 필드에 글자 수 제한 및 글자 수 표시 기능이 추가되었습니다.
    • 입력 필드에 텍스트 삭제 아이콘 표시 옵션이 추가되었습니다.
  • UI 개선

    • 그룹 페이지, 그룹룸, 내 그룹 화면 상단바가 새로운 디자인 컴포넌트로 교체되었습니다.
    • 그룹룸 화면의 정보 배치와 간격이 조정되어 가독성이 향상되었습니다.
    • 알림 카드 및 입력 필드의 미리보기 구성이 다양화되었습니다.
  • 기타

    • 사용되지 않는 문자열 리소스가 삭제되었습니다.

@coderabbitai
Copy link

coderabbitai bot commented Jun 30, 2025

Walkthrough

여러 UI 컴포넌트가 리팩토링 및 개선되었습니다. 기존의 NotificationCardCardAlarm으로 이름이 변경되고 badge 텍스트를 동적으로 받도록 수정되었습니다. 여러 화면에서 TopAppBar가 공통 컴포넌트로 대체되었고, 텍스트 필드에 글자수 제한 및 아이콘 표시 기능이 추가되었습니다. 일부 레이아웃 구조와 미리보기도 개선되었습니다.

Changes

파일/경로 요약 변경 요약
.../ui/common/cards/CardAlarm.kt NotificationCardCardAlarm로 함수명 변경 및 badgeText 파라미터 추가, badge 표시 동적화, 미리보기 확장
.../ui/common/forms/FormTextFieldDefault.kt 글자수 제한(showLimit, limit) 및 아이콘 표시(showIcon) 파라미터 추가, 미리보기 확장
.../ui/myPage/groupPage/GroupPageScreen.kt TopAppBar를 MainTopAppBar()에서 LogoTopAppBar()로 교체
.../ui/myPage/groupPage/MainTopAppBar.kt MainTopAppBar 및 미리보기 함수 삭제
.../ui/myPage/groupRoom/GroupRoomScreen.kt 수동 TopBar 제거, DefaultTopAppBar로 교체, 레이아웃 구조 및 간격 일부 수정
.../ui/myPage/myGroup/MyGroupScreen.kt 수동 TopBar 제거, DefaultTopAppBar로 교체, 레이아웃 패딩 구조 조정
.../res/values/strings.xml "group" 문자열 리소스 삭제

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant GroupRoomScreen
    participant DefaultTopAppBar

    User->>GroupRoomScreen: 화면 진입
    GroupRoomScreen->>DefaultTopAppBar: TopBar 렌더링(타이틀/아이콘 숨김)
    DefaultTopAppBar-->>GroupRoomScreen: TopBar UI 반환
    GroupRoomScreen->>User: 나머지 그룹방 UI 표시
Loading
sequenceDiagram
    participant User
    participant CardAlarm

    User->>CardAlarm: badgeText, title 등 파라미터 전달
    CardAlarm->>User: badgeText 포함 알림 카드 UI 렌더링
Loading
sequenceDiagram
    participant User
    participant FormTextFieldDefault

    User->>FormTextFieldDefault: showLimit, limit, showIcon 등 전달
    FormTextFieldDefault->>User: 글자수 제한/아이콘 적용 텍스트필드 표시
Loading

Assessment against linked issues

Objective Addressed Explanation
내 모임방, 모임방 페이지, MyPageScreen UI 구현 (#25)

Assessment against linked issues: Out-of-scope changes

(해당 변경사항 내에서 범위를 벗어난 기능적 코드 변경은 발견되지 않았습니다.)

Possibly related PRs

  • UI/#18 form, card #22: 기존 NotificationCard 컴포저블을 도입한 PR로, 본 PR에서 해당 컴포넌트를 직접 수정 및 확장하였습니다.

Suggested labels

🎨 UI, 🍀 refactor, ✅ OK merge

Suggested reviewers

  • JJUYAAA
  • Nico1eKim

Poem

🐰
새 이름의 카드, 알람이 되어
뱃지엔 글자가 춤을 추네
탑바도 새 옷 입고
텍스트필드엔 제한이 생겼죠
토끼는 기뻐 깡총깡총
UI가 더 예뻐진 오늘,
코드밭에 꽃이 피었네!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 15c7670 and 621e9d8.

📒 Files selected for processing (7)
  • app/src/main/java/com/texthip/thip/ui/common/cards/CardAlarm.kt (4 hunks)
  • app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt (2 hunks)
  • app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt (2 hunks)
  • app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MainTopAppBar.kt (0 hunks)
  • app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt (2 hunks)
  • app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt (2 hunks)
  • app/src/main/res/values/strings.xml (0 hunks)
💤 Files with no reviewable changes (2)
  • app/src/main/res/values/strings.xml
  • app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MainTopAppBar.kt
🧰 Additional context used
🧬 Code Graph Analysis (1)
app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt (1)
app/src/main/java/com/texthip/thip/ui/common/topappbar/LogoTopAppBar.kt (1)
  • LogoTopAppBar (21-68)
🔇 Additional comments (16)
app/src/main/java/com/texthip/thip/ui/common/cards/CardAlarm.kt (3)

78-83: 배지 텍스트에 패딩 추가가 좋습니다.

배지 텍스트에 수평/수직 패딩을 추가하여 가독성이 향상되었고, 동적 badgeText 파라미터 사용으로 재사용성이 높아졌습니다.


152-194: 프리뷰 확장이 잘 되었습니다.

다양한 배지 텍스트("모임", "피드", "좋아요", "댓글")와 읽음 상태를 보여주는 프리뷰가 추가되어 컴포넌트의 다양한 사용 사례를 잘 보여줍니다.


37-39: 이름 변경 및 파라미터 추가 안전 확인 완료

NotificationCardCardAlarm 네이밍 변경이 기존 코드에 영향을 주지 않음을 확인했습니다. 또한 badgeText 파라미터 추가로 동적 배지 텍스트 지원이 정상 작동함을 검증했습니다.

  • NotificationCard 사용처: 없음
  • CardAlarm 사용처:
    • app/src/main/java/com/texthip/thip/ui/common/cards/CardAlarm.kt 내 PreviewNotificationCards 등에서만 참조

변경 사항으로 인한 추가 수정은 불필요합니다.

app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt (1)

52-57: MainTopAppBar 사용 여부 재확인

MainTopAppBar가 코드베이스에 남아있지 않은지 아래 명령어로 다시 확인해주세요:

#!/bin/bash
# MainTopAppBar 잔여 사용처 검색
rg -A 3 "MainTopAppBar" --glob "*.kt"
app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt (2)

54-57: 표준 TopAppBar 컴포넌트 사용이 좋습니다.

수동으로 구성된 상단바를 DefaultTopAppBar로 교체하여 코드가 더 깔끔해지고 일관성이 향상되었습니다.


58-63: 레이아웃 구조 개선이 적절합니다.

중첩된 Column 구조로 변경하면서 패딩과 배경색 적용을 내부 컬럼으로 이동시켜 레이아웃 계층이 더 명확해졌습니다.

app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt (5)

34-36: 새로운 파라미터 추가가 잘 설계되었습니다.

showLimit, limit, showIcon 파라미터 추가로 텍스트 필드의 기능이 크게 향상되었습니다. 기본값 설정도 적절합니다.


41-49: 글자수 제한 로직이 올바르게 구현되었습니다.

입력과 표시 모두에서 글자수 제한을 적용하여 일관성 있게 처리했습니다.


70-86: 조건부 아이콘 표시 로직이 우수합니다.

텍스트 유무에 따라 다른 아이콘을 보여주고, 클릭 시 텍스트를 지우는 기능이 잘 구현되었습니다.


91-103: 글자수 표시 위치와 스타일이 적절합니다.

오른쪽 정렬과 적절한 패딩으로 글자수 표시가 깔끔하게 배치되었습니다.


115-130: 프리뷰에서 다양한 설정을 잘 보여줍니다.

두 가지 다른 설정(글자수 표시 vs 아이콘 표시)을 보여주는 프리뷰가 컴포넌트의 활용도를 잘 보여줍니다.

app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt (5)

46-50: 표준 TopAppBar 컴포넌트로의 교체가 일관성 있습니다.

수동 구성된 뒤로 가기 버튼을 DefaultTopAppBar로 교체하여 다른 화면들과 일관성을 유지했습니다.


52-57: 레이아웃 계층 구조 개선이 좋습니다.

중첩된 Column 구조로 변경하여 배경색과 패딩 적용이 더 명확해졌습니다.


59-59: 간격 조정을 확인해주세요.

상단 간격이 36dp에서 20dp로 줄어들었는데, 이것이 의도된 변경인지 확인해주세요.


62-85: 타이틀과 아이콘 표시 로직이 개선되었습니다.

비밀방/오픈방 상태에 따른 아이콘 표시 로직이 더 명확해졌고, 조건부 렌더링이 잘 구현되었습니다.


104-202: UI 요소 재구성이 논리적입니다.

기간과 인원 정보를 나란히 배치하고, 모집 정보와 장르를 박스로 묶어서 가독성이 향상되었습니다.

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements the UI for various group-related screens, integrates standardized top app bars, and enhances shared form and card components.

  • Refactored MyGroupScreen, GroupRoomScreen, and GroupPageScreen to use DefaultTopAppBar/LogoTopAppBar
  • Enhanced FormTextFieldDefault with character limits, limit display, and clear-icon toggle
  • Renamed NotificationCard to CardAlarm with dynamic badgeText and removed an unused string resource

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
app/src/main/res/values/strings.xml Removed unused <string name="group"> resource
app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt Swapped custom header for DefaultTopAppBar and adjusted layout nesting
app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt Wrapped content with DefaultTopAppBar and cleaned up back arrow code
app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MainTopAppBar.kt Deleted obsolete MainTopAppBar
app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt Replaced MainTopAppBar with LogoTopAppBar
app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt Added character-limit logic, trailing-icon toggle, and preview updates
app/src/main/java/com/texthip/thip/ui/common/cards/CardAlarm.kt Renamed card, introduced badgeText, and removed hardcoded size
Comments suppressed due to low confidence (2)

app/src/main/res/values/strings.xml:40

  • The group string resource was removed—ensure all stringResource(R.string.group) calls have been replaced or removed to prevent missing resource errors.
    <string name="time_ago">시간 전</string>

app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt:53

  • Missing import for painterResource. Add import androidx.compose.ui.res.painterResource to avoid unresolved reference.
                    leftIcon = painterResource(R.drawable.ic_done),

Comment on lines +59 to +60
modifier = Modifier
.size(width = 320.dp, height = 48.dp),
Copy link

Copilot AI Jun 30, 2025

Choose a reason for hiding this comment

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

[nitpick] Hardcoding size(320.dp, 48.dp) can limit responsiveness. Consider using fillMaxWidth() or passing size via modifier for better adaptability on different screen widths.

Suggested change
modifier = Modifier
.size(width = 320.dp, height = 48.dp),
modifier = modifier
.fillMaxWidth()
.padding(vertical = 8.dp),

Copilot uses AI. Check for mistakes.
Box(
modifier = Modifier
.size(width = 40.dp, height = 24.dp)
.clip(RoundedCornerShape(13.dp))
Copy link

Copilot AI Jun 30, 2025

Choose a reason for hiding this comment

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

[nitpick] After removing the fixed .size(...) on the badge container, consider adding minWidth/minHeight or a fixed height to ensure consistent badge dimensions across varying badgeText lengths.

Copilot uses AI. Check for mistakes.
@Nico1eKim Nico1eKim deleted the branch THIP-TextHip:develop June 30, 2025 15:41
@Nico1eKim Nico1eKim closed this Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI] 모임 페이지 [(THIP2025-50)]

3 participants