feat(message): add conversation notification mute feature
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 57s
Frontend CI / ota-android (push) Successful in 10m53s
Frontend CI / build-android-apk (push) Failing after 1h12m12s

Add notification mute functionality for conversations with the following changes:

- Add notification_muted field to ConversationResponse and related DTOs
- Add notificationMutedMap to message store for tracking mute state
- Add setConversationNotificationMuted API method
- Integrate mute toggle in GroupInfoScreen and PrivateChatInfoScreen
- Skip system notifications for muted conversations
- Suppress vibration for muted conversations in WS handler
- Clean up selected mentions when @mentions are removed from text

Chore changes:
- Update PostCard bookmark icon from 'bookmark' to 'star'
- Refine card styles across AppsScreen, MaterialsScreen, and SubjectMaterialsScreen
- Improve week selector scrolling to center selected week in ScheduleScreen
This commit is contained in:
lafay
2026-04-25 21:23:22 +08:00
parent de0afa93a1
commit 5fa5403d6a
15 changed files with 252 additions and 101 deletions

View File

@@ -266,6 +266,7 @@ export interface ConversationResponse {
id: string; // 雪花算法ID (使用string避免JavaScript精度丢失)
type: ConversationType;
is_pinned?: boolean;
notification_muted?: boolean;
last_seq: number;
last_message?: MessageResponse;
last_message_at: string;
@@ -283,7 +284,8 @@ export interface ConversationResponse {
export interface ConversationParticipantResponse {
user_id: string;
last_read_seq: number;
muted: boolean;
notification_muted: boolean;
is_pinned: boolean;
}
// 会话详情响应
@@ -291,6 +293,7 @@ export interface ConversationDetailResponse {
id: string;
type: ConversationType;
is_pinned?: boolean;
notification_muted?: boolean;
last_seq: number;
last_message?: MessageResponse;
last_message_at: string;