Skip to content

Conversation

@2paperstar
Copy link
Member

@2paperstar 2paperstar commented Nov 6, 2025

Summary by CodeRabbit

새로운 기능

  • 채팅 메시지 텍스트 선택 기능: 모든 채팅 버블의 텍스트를 선택하여 복사할 수 있게 되었습니다. 제목 줄과 설명 텍스트 모두에서 텍스트를 선택할 수 있으며, 레이아웃과 스타일은 기존과 동일하게 유지됩니다.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 6, 2025

📝 Walkthrough

워크스루

채팅 버블 위젯의 텍스트 디스플레이를 SelectableText로 변경하여 사용자가 채팅 메시지를 선택할 수 있도록 수정. 레이아웃과 스타일링은 유지되며, 선택 가능 기능만 추가됨.

변경사항

응집도 / 파일(들) 변경 요약
텍스트 선택 기능 활성화
lib/app/modules/chat/presentation/widgets/chat_bubble.dart, lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
Text 위젯을 SelectableText로 교체하여 채팅 메시지 텍스트 선택 기능 추가. 레이아웃 및 스타일링 로직 변경 없음

예상 코드 리뷰 노력

🎯 1 (Trivial) | ⏱️ ~3 분

  • 단순 위젯 교체로 인한 최소 검토 시간
  • 두 파일 모두 동일한 패턴 적용
  • 레이아웃이나 비즈니스 로직 변경 없음

관련 가능성 있는 PR

  • feat: fofo ui #124: 같은 위젯 파일(chat_bubble.dart, fofo_bubble.dart)을 수정하는 PR로, 해당 PR에서 Bubble/FofoBubble UI를 도입했고 이 PR에서 Text를 SelectableText로 업데이트

🐰 글자를 톡톡 쓸어서 ✨
메시지를 선택할 수 있네요
채팅 거품이 반짝반짝
사용자의 손가락이 춤을 춘다 💫
선택할 자유, 이제 여기에!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: replacing Text widgets with SelectableText in chat bubble components to enable text selection.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 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 2185e54 and 72959c6.

📒 Files selected for processing (2)
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart (1 hunks)
  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart (1 hunks)
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 60
File: lib/app/modules/chat/presentation/pages/chat_room_page.dart:98-149
Timestamp: 2025-07-06T22:24:29.791Z
Learning: In the chat room page of gsainfoteam/pot-g-flutter project, the chat input functionality implementation (message sending, TextEditingController disposal, send button tap handling) will be addressed in a separate PR rather than in the current UI-focused PR.
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 60
File: lib/app/modules/chat/presentation/pages/chat_room_page.dart:25-25
Timestamp: 2025-07-06T22:24:36.316Z
Learning: In gsainfoteam/pot-g-flutter, the dynamic title implementation for ChatRoomPage (replacing hardcoded "지송 003" with id parameter or chat room information) is planned to be implemented in a separate PR rather than the current chat room UI PR.
📚 Learning: 2025-10-09T06:27:04.522Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 124
File: lib/app/modules/chat/presentation/widgets/fofo_bubble.dart:31-31
Timestamp: 2025-10-09T06:27:04.522Z
Learning: In the pot-g-flutter project, FofoBubble widgets in lib/app/modules/chat/presentation/widgets/fofo_bubble.dart always have `isFirst: true` hardcoded because Fofo messages are system notifications that always display with a speech bubble tail and don't group with other messages like regular chat bubbles do.

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-07-06T22:24:36.316Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 60
File: lib/app/modules/chat/presentation/pages/chat_room_page.dart:25-25
Timestamp: 2025-07-06T22:24:36.316Z
Learning: In gsainfoteam/pot-g-flutter, the dynamic title implementation for ChatRoomPage (replacing hardcoded "지송 003" with id parameter or chat room information) is planned to be implemented in a separate PR rather than the current chat room UI PR.

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-10-09T06:26:50.544Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 124
File: lib/app/modules/chat/presentation/pages/chat_room_page.dart:241-289
Timestamp: 2025-10-09T06:26:50.544Z
Learning: In gsainfoteam/pot-g-flutter chat UI (lib/app/modules/chat/presentation/pages/chat_room_page.dart), the isFirst function intentionally compares with nextChat (index + 1) rather than previousChat (index - 1) in a reversed ListView. This design choice places chat bubble avatars/tails at the top of message groups rather than at the bottom.

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-07-06T19:46:24.508Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 51
File: lib/app/modules/common/presentation/widgets/date_select.dart:107-109
Timestamp: 2025-07-06T19:46:24.508Z
Learning: In lib/app/modules/common/presentation/widgets/date_select.dart, the date display logic intentionally uses widget.selectedDate instead of _selectedDate to ensure the UI only reflects the "committed" selection state from the parent component, rather than the temporary internal selection state. This design choice maintains consistency with parent state management where the display should only update when the parent's selectedDate prop changes.

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-07-06T22:24:29.791Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 60
File: lib/app/modules/chat/presentation/pages/chat_room_page.dart:98-149
Timestamp: 2025-07-06T22:24:29.791Z
Learning: In the chat room page of gsainfoteam/pot-g-flutter project, the chat input functionality implementation (message sending, TextEditingController disposal, send button tap handling) will be addressed in a separate PR rather than in the current UI-focused PR.

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-04-03T08:06:18.795Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 7
File: lib/app/modules/main/presentation/pages/main_page.dart:29-46
Timestamp: 2025-04-03T08:06:18.795Z
Learning: In this PR (#7), the main_page.dart file is not the focus of the changes but rather demonstrates the usage of the implemented common components (PotGButton, PotGToggle, etc.).

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
📚 Learning: 2025-09-22T04:42:43.124Z
Learnt from: 2paperstar
Repo: gsainfoteam/pot-g-flutter PR: 70
File: lib/app/modules/chat/domain/entities/chat_entity.dart:2-2
Timestamp: 2025-09-22T04:42:43.124Z
Learning: ChatEntity in lib/app/modules/chat/domain/entities/chat_entity.dart is temporary code according to the developer (2paperstar).

Applied to files:

  • lib/app/modules/chat/presentation/widgets/fofo_bubble.dart
  • lib/app/modules/chat/presentation/widgets/chat_bubble.dart
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build Android App and Test
  • GitHub Check: Build iOS App and Test
🔇 Additional comments (2)
lib/app/modules/chat/presentation/widgets/fofo_bubble.dart (1)

56-64: 변경 사항이 올바르게 구현되었습니다!

TextSelectableText로 변경하여 Fofo 메시지의 텍스트 선택이 가능하도록 구현되었습니다. 제목과 본문 모두에 일관되게 적용되었으며, 기존 스타일링이 그대로 유지되어 있습니다.

lib/app/modules/chat/presentation/widgets/chat_bubble.dart (1)

35-40: 변경 사항이 올바르게 구현되었습니다!

TextSelectableText로 변경하여 채팅 메시지의 텍스트 선택이 가능하도록 구현되었습니다. 기존의 조건부 색상 로직이 그대로 유지되어 있습니다.


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.

@2paperstar 2paperstar enabled auto-merge (squash) November 6, 2025 13:14
@2paperstar 2paperstar merged commit d1b8dda into gsainfoteam:development Nov 6, 2025
5 checks passed
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.

1 participant