pp-bot bb9f1aa956 feat(chat): 表情/贴纸/附件面板全量实现(#51~#56)
## 贴纸(#51)
- `StickerMessageBubble`:typ=5,CDN 图片,120×120pt max,无气泡背景,圆角 8pt
- `_buildBubble()` switch 新增 `case 5:`,isMedia 添加 typ=5

## 附件面板(#52~#55)
- `AttachmentPanelSheet`:6 格 BottomSheet(拍照/相册/视频/文件/录音/红包)
- 返回 `AttachmentOption` enum,由 `_ChatDetailPageState` 分发后续行为
- 拍照(#53):`image_picker.pickImage(camera)` → `SendImageUseCase`
- 视频(#54):`image_picker.pickVideo()` → `SendVideoUseCase`(新建)
- 文件/录音/红包:SnackBar 占位「暂未支持」
- `SendVideoUseCase`:上传 + `jsonEncode({url,thumb,size})` → typ=4

## 表情面板(#56)
- `EmojiPanel`:4 分类(常用/人物/自然/物件),每类 ~64 个 Unicode emoji
- 点击插入到 `TextEditingController` 当前光标位置(支持多码点 emoji)
- ⌫ 退格按钮按 rune 删除(正确处理多码点 emoji)
- `_InputBar` 新增表情按钮(😊)和附件按钮,原 `onAttach` 拆分为 `onAttachPanel` + `onEmoji`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 21:06:24 +09:00
2026-03-06 15:05:53 +08:00
2026-03-06 15:05:53 +08:00
2026-03-06 15:05:53 +08:00
2026-03-06 15:05:53 +08:00
2026-03-10 18:06:03 +08:00
2026-03-10 18:06:03 +08:00

customer-im-client

架构文档在 Doc/IM_App_架构设计.htmlclone 到本地后用浏览器直接打开。

開發流程:

主項目:

IDE開啟主項目project: /custom-im-client/apps/im_app

每次pull/fetch後:

如果有新的.g文件引入失敗可以透過指令生成 melos run gen

Description
Customer IM Client Flutter Project
Readme 1.2 MiB
Languages
Dart 85%
Shell 3.8%
C++ 3.3%
Ruby 2.4%
CMake 1.9%
Other 3.6%