From 0f94af5f4e64dd860d45c0b9783e67d27fa15b3e Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 26 Aug 2024 09:59:30 +0100 Subject: [PATCH] fix message statud bag --- .../chat/{tsconfig.json => 1tsconfig.json} | 0 .../chat/domain/service/room.service.ts | 4 +- .../use-case/message-to-async-ui.service.ts | 9 + .../sync-all-room-messages.service.ts | 14 +- src/app/module/chat/infra/socket/signalR.ts | 1 - src/app/ui/chat/chat-routing.module.ts | 4 + .../component/messages/messages.page.html | 174 +++++++++--------- .../component/messages/messages.page.scss | 11 +- .../chat/component/messages/messages.page.ts | 21 ++- .../modal/chat-popover/chat-popover.page.html | 1 + .../modal/chat-popover/chat-popover.page.ts | 22 ++- .../room-info/room-info-routing.module.ts | 17 ++ .../chat/modal/room-info/room-info.module.ts | 20 ++ .../chat/modal/room-info/room-info.page.html | 18 ++ .../chat/modal/room-info/room-info.page.scss | 0 .../modal/room-info/room-info.page.spec.ts | 24 +++ .../ui/chat/modal/room-info/room-info.page.ts | 36 ++++ src/theme/variables.scss | 16 ++ 18 files changed, 285 insertions(+), 107 deletions(-) rename src/app/module/chat/{tsconfig.json => 1tsconfig.json} (100%) create mode 100644 src/app/module/chat/domain/use-case/message-to-async-ui.service.ts create mode 100644 src/app/ui/chat/modal/room-info/room-info-routing.module.ts create mode 100644 src/app/ui/chat/modal/room-info/room-info.module.ts create mode 100644 src/app/ui/chat/modal/room-info/room-info.page.html create mode 100644 src/app/ui/chat/modal/room-info/room-info.page.scss create mode 100644 src/app/ui/chat/modal/room-info/room-info.page.spec.ts create mode 100644 src/app/ui/chat/modal/room-info/room-info.page.ts diff --git a/src/app/module/chat/tsconfig.json b/src/app/module/chat/1tsconfig.json similarity index 100% rename from src/app/module/chat/tsconfig.json rename to src/app/module/chat/1tsconfig.json diff --git a/src/app/module/chat/domain/service/room.service.ts b/src/app/module/chat/domain/service/room.service.ts index 92ce38eee..3c9599987 100644 --- a/src/app/module/chat/domain/service/room.service.ts +++ b/src/app/module/chat/domain/service/room.service.ts @@ -7,9 +7,7 @@ export class RoomService { constructor( private RoomSocketRepositoryService: RoomSocketRepositoryService - ) { - - } + ) {} init() { this.OnReceiveCreateRoom() diff --git a/src/app/module/chat/domain/use-case/message-to-async-ui.service.ts b/src/app/module/chat/domain/use-case/message-to-async-ui.service.ts new file mode 100644 index 000000000..6cfaf437a --- /dev/null +++ b/src/app/module/chat/domain/use-case/message-to-async-ui.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class MessageToAsyncUIService { + + constructor() { } +} diff --git a/src/app/module/chat/domain/use-case/sync-all-room-messages.service.ts b/src/app/module/chat/domain/use-case/sync-all-room-messages.service.ts index ce7b2b33d..8dca800d7 100644 --- a/src/app/module/chat/domain/use-case/sync-all-room-messages.service.ts +++ b/src/app/module/chat/domain/use-case/sync-all-room-messages.service.ts @@ -9,6 +9,7 @@ import { RoomLocalRepository } from '../../data/repository/room/room-local-repos import { SessionStore } from 'src/app/store/session.service'; import { Logger } from 'src/app/services/logger/main/service'; import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer'; +import { v4 as uuidv4 } from 'uuid' @Injectable({ providedIn: 'root' @@ -54,15 +55,17 @@ export class SyncAllRoomMessagesService { this.messageLocalDataSourceService.findOrUpdate(clone) - const me = message.info.find(e => e.memberId == SessionStore.user.UserId) + const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' ) if(!me) { this.MessageSocketRepositoryService.sendDeliverAt({ memberId: SessionStore.user.UserId, messageId: message.id, roomId: message.roomId, - requestId: "string" + requestId: uuidv4() }) + + tracing.addEvent('send delever roomId'+ room.id) } } @@ -70,14 +73,17 @@ export class SyncAllRoomMessagesService { let clone: MessageTable = message clone.roomId = room.id - const me = message.info.find(e => e.memberId == SessionStore.user.UserId) + const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' ) if(!me) { this.MessageSocketRepositoryService.sendDeliverAt({ memberId: SessionStore.user.UserId, messageId: message.id, roomId: message.roomId, - requestId: "string" + requestId: uuidv4() }) + + tracing.addEvent('send delever roomId'+ room.id) + } } diff --git a/src/app/module/chat/infra/socket/signalR.ts b/src/app/module/chat/infra/socket/signalR.ts index 31915ecd9..40fc5210a 100644 --- a/src/app/module/chat/infra/socket/signalR.ts +++ b/src/app/module/chat/infra/socket/signalR.ts @@ -159,7 +159,6 @@ export class SignalRConnection { for(const method of methods) { this.hubConnection.on(method, (message: any) => { - console.log({message}) this.messageSubject.next(message); this.sendDataSubject.next({ method: method, diff --git a/src/app/ui/chat/chat-routing.module.ts b/src/app/ui/chat/chat-routing.module.ts index cdf0356e4..438d2bd3b 100644 --- a/src/app/ui/chat/chat-routing.module.ts +++ b/src/app/ui/chat/chat-routing.module.ts @@ -60,6 +60,10 @@ const routes: Routes = [ path: 'view-onces', loadChildren: () => import('./modal/view-onces/view-onces.module').then( m => m.ViewOncesPageModule) }, + { + path: 'room-info', + loadChildren: () => import('./modal/room-info/room-info.module').then( m => m.RoomInfoPageModule) + }, ]; @NgModule({ diff --git a/src/app/ui/chat/component/messages/messages.page.html b/src/app/ui/chat/component/messages/messages.page.html index 03b0992ec..e53f6449c 100644 --- a/src/app/ui/chat/component/messages/messages.page.html +++ b/src/app/ui/chat/component/messages/messages.page.html @@ -41,122 +41,122 @@ -
+
-
+
-
-
+
- {{ message.message }} -
- -
-
- - - {{ attachment.fileName}} - - +
+ {{ message.message }}
-
+
+
- + + {{ attachment.fileName}} + -
- Mandou uma mensagen com visualização única
+
-
- -
- Abrir a visualização única + + +
+ Mandou uma mensagen com visualização única
+ + +
+ +
+ Abrir a visualização única +
+
+
+
+ +
+ +
+ + + + + + + + + + + {{ attachment.fileName}} +
-
- +
+ +
+
+ + + + + +
-
- - - - - - - - - +
+ +
+
+ + + +
+ + + + - {{ attachment.fileName}} -
-
-
- - - - - - -
- + +
+ + {{ emoji }} +
-
-
- - - -
- - - - - -
- -
- - -
- - {{ emoji }} + +
+ + {{ reaction.reaction }}
- -
- - {{ reaction.reaction }} - -
-
diff --git a/src/app/ui/chat/component/messages/messages.page.scss b/src/app/ui/chat/component/messages/messages.page.scss index 08085f02f..aed3c0289 100644 --- a/src/app/ui/chat/component/messages/messages.page.scss +++ b/src/app/ui/chat/component/messages/messages.page.scss @@ -494,4 +494,13 @@ ion-footer { img {} -} \ No newline at end of file +} + + +// .rotate-div { +// transform: rotate(180deg); +// -webkit-transform: rotate(180deg); +// -moz-transform: rotate(180deg); +// -ms-transform: rotate(180deg); +// -o-transform: rotate(180deg); +// } diff --git a/src/app/ui/chat/component/messages/messages.page.ts b/src/app/ui/chat/component/messages/messages.page.ts index 909e8c835..95a39ad58 100644 --- a/src/app/ui/chat/component/messages/messages.page.ts +++ b/src/app/ui/chat/component/messages/messages.page.ts @@ -68,7 +68,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy roomType!: RoomType RoomTypeEnum = RoomType - + @Input() roomId: string; @Input() showMessages: string; @@ -147,6 +147,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy @ViewChild('imageModal') imageModal: TemplateRef; totalMembers = 0 + members: MemberTable[] = [] constructor( public popoverController: PopoverController, @@ -200,6 +201,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.roomMembers$ = this.MemberListLocalRepository.getRoomMemberByIdLive(this.roomId).pipe( tap((members) => { this.totalMembers = members.length + this.members = members for(const member of members) { if(member.wxUserId == SessionStore.user.UserId) { this.isAdmin = member.isAdmin @@ -210,7 +212,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.roomStatus$ = this.MemberListLocalRepository.allMemberOnline(this.roomId) this.chatServiceService.getRoomById(this.roomId) - + this.messageTypingSubject?.unsubscribe() this.messageTypingSubject = this.userTypingLocalRepository.getUserTypingLiveByRoomId(this.roomId).subscribe((e) => { const arrayNames = e.filter((b)=> b.userId != SessionStore.user.UserId).map(e => e.userName) @@ -218,14 +220,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy const uniqueArray = [...new Set(arrayNames)]; - console.log({uniqueArray}) - if(uniqueArray.length >= 1) { (this.myInputRef.nativeElement as HTMLDivElement).innerHTML = uniqueArray + '...' } else { (this.myInputRef.nativeElement as HTMLDivElement).innerHTML = '' } - + }) as any } @@ -246,7 +246,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } allViewed(message: MessageEntity) { - return message.info.filter(e => typeof e.readAt == 'string').length == this.totalMembers + const totalMembers = this.members.filter((e) => message.sender.wxUserId != e.wxUserId ).length + return message.info.filter(e => typeof e.readAt == 'string' && message.sender.wxUserId != e.memberId ).length == totalMembers } async getMessages() { @@ -258,9 +259,9 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.messages1[this.roomId] = [] this.messages1[this.roomId] = messages - if(messages.length >= 1) { - this.messages1[this.roomId].push(LastMessage) - } + // if(messages.length >= 1) { + // this.messages1[this.roomId].push(LastMessage) + // } this.loadAttachment() setTimeout(() => { @@ -1001,7 +1002,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy ] }); - + await alert.present(); }) } diff --git a/src/app/ui/chat/modal/chat-popover/chat-popover.page.html b/src/app/ui/chat/modal/chat-popover/chat-popover.page.html index f8f62105a..80b96cf35 100644 --- a/src/app/ui/chat/modal/chat-popover/chat-popover.page.html +++ b/src/app/ui/chat/modal/chat-popover/chat-popover.page.html @@ -19,6 +19,7 @@
+