diff --git a/src/app/core/chat/entity/group.ts b/src/app/core/chat/entity/group.ts index 3a9a68268..eb11ed3d0 100644 --- a/src/app/core/chat/entity/group.ts +++ b/src/app/core/chat/entity/group.ts @@ -3,6 +3,7 @@ import { BaseEntity } from "src/app/utils/entity"; import { z } from "zod" import { MessageEntitySchema } from "./message"; import { IDBoolean } from "src/app/infra/database/dexie/type"; +import { Logger } from "src/app/services/logger/main/service"; export enum RoomType { Group = 1, @@ -53,7 +54,7 @@ export class RoomEntity extends BaseEntity(RoomEntitySchema) implem createdAt: typeof RoomEntitySchema._input.createdAt expirationDate: typeof RoomEntitySchema._input.expirationDate roomType: typeof RoomEntitySchema._input.roomType - members: typeof RoomEntitySchema._input.members + members: typeof RoomEntitySchema._input.members = [] messages: typeof RoomEntitySchema._input.messages receiverId: typeof RoomEntitySchema._input.receiverId @@ -64,20 +65,30 @@ export class RoomEntity extends BaseEntity(RoomEntitySchema) implem if(data.roomType == RoomType.Direct) { this.setName() - if(!this.$id) { - this.$id = this.getReceiverId() + if(this.members.length == 2) { + if(!this.$id ) { + this.$id = this.getReceiverId() + } + + if(!this.receiverId ) { + this.setReceiver() + } } - if(!this.receiverId && this.members.length == 2) { - this.setReceiver() - } + } } // direct room only getReceiverId() { const receiver = this.members?.find((e) => e.user.wxUserId != SessionStore.user.UserId) - return receiver.user.wxUserId.toString() + if(receiver) { + return receiver.user.wxUserId.toString() + } else { + Logger.error('cant get receiver Id from Room.getReceiverId '+ this.id, this) + return undefined + } + } // direct room only @@ -87,7 +98,13 @@ export class RoomEntity extends BaseEntity(RoomEntitySchema) implem // direct room only setReceiver() { - this.receiverId = parseInt(this.getReceiverId()) + const receiverId = this.getReceiverId() + if(receiverId) { + this.receiverId = parseInt(receiverId) + } else { + Logger.error('cant set receiver Id from Room.setReceiver', this) + } + } // direct room only diff --git a/src/app/core/chat/repository/room/room-local-repository.ts b/src/app/core/chat/repository/room/room-local-repository.ts index b37bec155..23c16d846 100644 --- a/src/app/core/chat/repository/room/room-local-repository.ts +++ b/src/app/core/chat/repository/room/room-local-repository.ts @@ -1,12 +1,10 @@ import { MessageTable } from "src/app/infra/database/dexie/instance/chat/schema/message"; import { DexieRepository } from "src/app/infra/repository/dexie/dexie-repository.service"; -import { MessageEntity } from "../../entity/message"; -import { Observable as DexieObservable, PromiseExtended } from 'Dexie'; -import { AttachmentTable } from "src/app/infra/database/dexie/instance/chat/schema/attachment"; import { RoomTable } from "src/app/infra/database/dexie/instance/chat/schema/room"; import { Observable } from "rxjs"; export abstract class IRoomLocalRepository extends DexieRepository { abstract getItemsLive(): Observable abstract getRoomByIdLive(id: any) : Observable + abstract OnSetIdToDirectRoom(): Observable } diff --git a/src/app/infra/database/dexie/instance/chat/schema/message.ts b/src/app/infra/database/dexie/instance/chat/schema/message.ts index 3ac62b6a8..7e86c8ca7 100644 --- a/src/app/infra/database/dexie/instance/chat/schema/message.ts +++ b/src/app/infra/database/dexie/instance/chat/schema/message.ts @@ -6,7 +6,7 @@ export const MessageTableSchema = z.object({ $id: z.string().optional(), $createAt: z.number().optional(), id: z.string().uuid().optional(), - roomId: z.string().optional(), + roomId: z.string().uuid().optional(), message: z.string().nullable().optional(), requestId: z.string().nullable().optional(), messageType: z.number(), diff --git a/src/app/infra/socket/signalR/signalR.ts b/src/app/infra/socket/signalR/signalR.ts index 599ea200d..c2cc527ad 100644 --- a/src/app/infra/socket/signalR/signalR.ts +++ b/src/app/infra/socket/signalR/signalR.ts @@ -137,6 +137,7 @@ export class SignalRConnection { }); } catch(error) { + console.log(error); resolve(err({ type: EnumSocketError.catch })) @@ -144,6 +145,7 @@ export class SignalRConnection { } else { + console.log('dfdf'); this.sendLaterSubject.next({method: 'SendMessage', args: input}) return resolve(err(false)) } diff --git a/src/app/module/chat/data/async/list/rooms/roomListChangeDetector.ts b/src/app/module/chat/data/async/list/rooms/roomListChangeDetector.ts index e5783b9cf..15d8524e8 100644 --- a/src/app/module/chat/data/async/list/rooms/roomListChangeDetector.ts +++ b/src/app/module/chat/data/async/list/rooms/roomListChangeDetector.ts @@ -11,11 +11,13 @@ export function roomListDetermineChanges(serverRooms: RoomListItemOutPutDTO[], l const roomsToUpdate = serverRooms.filter(room => { const localRoom = localRoomMap.get(room.chatRoom.id); + console.log(room.chatRoom, localRoom) + return localRoom && ( room.chatRoom.roomName !== localRoom.roomName && room.chatRoom.roomType == RoomType.Group || room.chatRoom.createdBy.wxUserId !== localRoom.createdBy.wxUserId || - room.chatRoom.createdAt !== localRoom.createdAt || - room.chatRoom.expirationDate !== localRoom.expirationDate // || + room.chatRoom.createdAt !== localRoom.createdAt + //room.chatRoom.expirationDate !== localRoom.expirationDate // || // room.chatRoom.messages?.[0]?.id !== localRoom.messages?.[0]?.id // room.chatRoom.roomType !== localRoom.roomType ); diff --git a/src/app/module/chat/data/repository/room/room-local-repository.service.ts b/src/app/module/chat/data/repository/room/room-local-repository.service.ts index 526c183ae..83451cb3d 100644 --- a/src/app/module/chat/data/repository/room/room-local-repository.service.ts +++ b/src/app/module/chat/data/repository/room/room-local-repository.service.ts @@ -47,6 +47,10 @@ export class RoomLocalRepository extends DexieRepository i (modifications as Partial).local = IDBoolean.true } + if((modifications as Partial).id && !oldValue.id && oldValue.roomType == RoomType.Direct) { + return this.listenCreateSyncSubject.next({...oldValue, ...modifications}) + } + return modifications }); @@ -60,5 +64,10 @@ export class RoomLocalRepository extends DexieRepository i return from(liveQuery(() => chatDatabase.room.get(id))); } + + OnSetIdToDirectRoom() { + return this.listenCreateSyncSubject.asObservable() + } + } diff --git a/src/app/module/chat/domain/chat-service.service.ts b/src/app/module/chat/domain/chat-service.service.ts index 663fb5434..9e59ccc5c 100644 --- a/src/app/module/chat/domain/chat-service.service.ts +++ b/src/app/module/chat/domain/chat-service.service.ts @@ -42,6 +42,7 @@ import { BoldRemoveByRoomIdInput, BoldRemoveByRoomIdService } from 'src/app/modu import { MemberListHttpSyncUseCase } from 'src/app/module/chat/domain/use-case/member/member-list-http-sync-use-case.ts.service' import { RoomBoldSyncUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-bold-sync-use-case.service' import { RoomSetLastMessageService } from 'src/app/module/chat/domain/use-case/room/room-set-last-message.service'; +import { RoomDirectOnSetIdUseCaseInputSchema, RoomDirectOnSetIdUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.service'; import { RoomCreateLocalDirectMessageInputDTOInputDTO, RoomCreateLocalDirectMessageService } from 'src/app/module/chat/domain/use-case/room/room-create-local-direct-message.service'; import { RoomGetListOnCreateUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-on-create-use-case.service'; import { IRoomSetLocalToFalseByIdInput, RoomSetLocalToFalseByIdService } from 'src/app/module/chat/domain/use-case/room/room-set-local-to-false-by-id.service'; @@ -115,7 +116,8 @@ export class ChatServiceService { private messageLocalGetByIdService: MessageLocalGetByIdService, private roomGetLocalByIdService: RoomGetLocalByIdService, private roomSetLocalToFalseByIdService: RoomSetLocalToFalseByIdService, - private roomUpdateNameSyncService: RoomUpdateNameSyncService + private roomUpdateNameSyncService: RoomUpdateNameSyncService, + private RoomDirectOnSetIdUseCaseService: RoomDirectOnSetIdUseCaseService ) { this.MessageSocketRepositoryService.listenToDeleteMessages() .pipe() @@ -187,6 +189,10 @@ export class ChatServiceService { return this.RemoveMemberUseCaseService.execute(data) } + roomDirectOnSetId(input: RoomDirectOnSetIdUseCaseInputSchema) { + return this.RoomDirectOnSetIdUseCaseService.execute(input) + } + messageDelete(data: {roomId, messageId}) { const params = { diff --git a/src/app/module/chat/domain/use-case/contact/contact-list.service.ts b/src/app/module/chat/domain/use-case/contact/contact-list.service.ts index 35ea13c82..2e378ef74 100644 --- a/src/app/module/chat/domain/use-case/contact/contact-list.service.ts +++ b/src/app/module/chat/domain/use-case/contact/contact-list.service.ts @@ -1,7 +1,9 @@ import { Injectable } from '@angular/core'; import { RoomType } from 'src/app/core/chat/entity/group'; import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository'; +import { IDBoolean } from 'src/app/infra/database/dexie/type'; import { ContactRepositoryService } from 'src/app/services/Repositorys/contacts/repository/contacts-repository.service'; +import { SessionStore } from 'src/app/store/session.service'; @Injectable({ providedIn: 'root' @@ -20,12 +22,13 @@ export class ContactListService { ]) if(userContact.isOk() && localDirectRooms.isOk()) { - const existNames = localDirectRooms.value.map(e => e.roomName); + const existNames = localDirectRooms.value.filter(e => e.local == IDBoolean.false).map(e => e.roomName); + //const existNames = localDirectRooms.value.map(e => e.roomName); return userContact.map((list) => { return list.data.result.filter((e) => { - return !existNames.includes(e.wxFullName) + return !existNames.includes(e.wxFullName) && e.wxUserId != SessionStore.user.UserId }) }) } else if (userContact.isErr()) { diff --git a/src/app/module/chat/domain/use-case/message/message-create-use-case.service.ts b/src/app/module/chat/domain/use-case/message/message-create-use-case.service.ts index 25494885e..708d2a180 100644 --- a/src/app/module/chat/domain/use-case/message/message-create-use-case.service.ts +++ b/src/app/module/chat/domain/use-case/message/message-create-use-case.service.ts @@ -181,7 +181,7 @@ export class MessageCreateUseCaseService { $id : message.$id } - this.messageLocalDataSourceService.update(message.$id, {...clone, sending: false, roomId: message.roomId}).then((data)=> { + this.messageLocalDataSourceService.update(message.$id, {...clone, sending: false, roomId: clone.roomId}).then((data)=> { if(data.isOk()) { } else { diff --git a/src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.service.ts b/src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.service.ts new file mode 100644 index 000000000..cc5c8eeaf --- /dev/null +++ b/src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { filter } from 'rxjs/operators'; +import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository'; +import { z } from 'zod'; + +const RoomDirectOnSetIdUseCaseInputSchema = z.object({ + $roomId: z.string() +}) + +export type RoomDirectOnSetIdUseCaseInputSchema = z.infer + +@Injectable({ + providedIn: 'root' +}) +export class RoomDirectOnSetIdUseCaseService { + + constructor( + private roomLocalRepository: IRoomLocalRepository + ) { } + + execute(input: RoomDirectOnSetIdUseCaseInputSchema) { + + return this.roomLocalRepository.OnSetIdToDirectRoom().pipe( + filter((data)=> data?.$id == input.$roomId) + ) + } +} diff --git a/src/app/module/chat/domain/use-case/room/room-get-list-use-case.service.ts b/src/app/module/chat/domain/use-case/room/room-get-list-use-case.service.ts index 42093d3dc..29b6541f6 100644 --- a/src/app/module/chat/domain/use-case/room/room-get-list-use-case.service.ts +++ b/src/app/module/chat/domain/use-case/room/room-get-list-use-case.service.ts @@ -70,7 +70,7 @@ export class GetRoomListUseCaseService { const filterValidateRooms = result.value.data.filter(e => { if(e.chatRoom.roomType == RoomType.Direct) { - if(e.chatRoom.user1 != null && e.chatRoom.user2 != null) { + if(e.chatRoom.user1 != null && e.chatRoom.user2 != null || e.chatRoom.user1?.wxUserId == e.chatRoom.user2?.wxUserId) { return true } else { Logger.error("direct room invalid data", { @@ -92,18 +92,25 @@ export class GetRoomListUseCaseService { const roomsToInsertEntity = GetRoomListMapper.toDomain(roomsToInsert) for( const room of roomsToInsertEntity) { - this.roomLocalDataSourceService.insert(room).then((result) => { + if(room.roomType == RoomType.Direct) { + if(room.$id) { + this.roomLocalDataSourceService.insert(room).then((result) => { - if( result.isErr() && - room.roomType == RoomType.Direct && - result.error.DBErrorName == 'ConstraintError') { - this.roomLocalDataSourceService.update(room.$id, room).then((result) => { - if(result.isErr()) { - console.log('failed to update room id') - } - }) + if( result.isErr() && + result.error.DBErrorName == 'ConstraintError') { + this.roomLocalDataSourceService.update(room.$id, room).then((result) => { + if(result.isErr()) { + console.log('failed to update room id') + } + }) + } + }) } - }) + + } else { + this.roomLocalDataSourceService.insert(room) + } + if(room.expirationDate) { this.CronJobService.createCronJob('remove expired room', new Date(room.expirationDate), this.execute) diff --git a/src/app/module/chat/domain/use-case/room/room-set-last-message.service.ts b/src/app/module/chat/domain/use-case/room/room-set-last-message.service.ts index f1a11a4db..059be7ff7 100644 --- a/src/app/module/chat/domain/use-case/room/room-set-last-message.service.ts +++ b/src/app/module/chat/domain/use-case/room/room-set-last-message.service.ts @@ -42,7 +42,6 @@ export class RoomSetLastMessageService { for(const room of roomList) { if(room.messages?.[0]?.id == message.id) { - console.log('listenToUpdateMessage', message.roomId) const result = await this.roomLocalRepository.update(room.$id, { messages: [message] @@ -51,7 +50,7 @@ export class RoomSetLastMessageService { if(result.isErr()) { console.log('failed to update last message') } else { - console.log('set last message') + // console.log('set last message') } } } diff --git a/src/app/ui/chat/chat.page.ts b/src/app/ui/chat/chat.page.ts index adbbd167a..d60bf4ac2 100644 --- a/src/app/ui/chat/chat.page.ts +++ b/src/app/ui/chat/chat.page.ts @@ -27,6 +27,7 @@ import { RoomViewModel } from './store/model/room'; import { MessageLocalDataSourceService } from 'src/app/module/chat/data/repository/message/message-local-data-source.service' import { ToastService } from 'src/app/services/toast.service'; import { Logger } from 'src/app/services/logger/main/service'; +import { IDBoolean } from 'src/app/infra/database/dexie/type'; @Component({ selector: 'app-chat', templateUrl: './chat.page.html', @@ -110,8 +111,8 @@ export class ChatPage implements OnInit { } - updatemessage(sortedRooms) { - this.rooms = sortedRooms + updatemessage(sortedRooms: RoomViewModel[]) { + this.rooms = sortedRooms.filter(e => e.local == IDBoolean.false) this.rooms.sort((a, b) => new Date(b.messages?.[0]?.sentAt as string || b.createdAt ).getTime() - @@ -347,7 +348,7 @@ export class ChatPage implements OnInit { this.RoomSelected = exist this.selectedRoomId = exist.$id; if (window.innerWidth < 701) { - this.openMessagesModal($roomId); + this.openMessagesModal(this.RoomSelected); } else { this.selectedRoomId = $roomId; @@ -378,7 +379,7 @@ export class ChatPage implements OnInit { openMessagesToStartDirectConversation(room: RoomViewModel) { if (window.innerWidth < 701) { - // this.openMessagesModal(roomId); + this.openMessagesModal(room); } else { this.roomId = null; @@ -460,10 +461,8 @@ export class ChatPage implements OnInit { }); modal.onDidDismiss().then((Data) => { - - // let data = Data.data - // let roomId = data.roomId - // this.openMessagesPage(roomId); + console.log('Data', Data.data) + this.openMessagesToStartDirectConversation(Data.data); }); @@ -497,7 +496,7 @@ export class ChatPage implements OnInit { await modal.present(); } - async openMessagesModal(roomId: any) { + async openMessagesModal(room: RoomViewModel) { this.closeAllDesktopComponents(); // @@ -506,7 +505,7 @@ export class ChatPage implements OnInit { component: MessagesPage, cssClass: 'modal modal-desktop isMessagesChatOpened', componentProps: { - roomId: roomId, + room: room, }, }); await modal.present(); diff --git a/src/app/ui/chat/component/messages/messages.page.html b/src/app/ui/chat/component/messages/messages.page.html index fd4d82603..e213350e3 100644 --- a/src/app/ui/chat/component/messages/messages.page.html +++ b/src/app/ui/chat/component/messages/messages.page.html @@ -23,7 +23,7 @@ - {{ user.wxFullName }}, + {{ user.wxFullName }}, diff --git a/src/app/ui/chat/component/messages/messages.page.ts b/src/app/ui/chat/component/messages/messages.page.ts index 887728af9..1a64b41b7 100644 --- a/src/app/ui/chat/component/messages/messages.page.ts +++ b/src/app/ui/chat/component/messages/messages.page.ts @@ -75,8 +75,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy @Input() _room!: RoomViewModel room!: RoomViewModel - @Input() roomId: string; - @Input() showMessages: string; @Output() openNewEventPage: EventEmitter = new EventEmitter(); @Output() getDirectMessages: EventEmitter = new EventEmitter(); @@ -142,6 +140,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy messageSendSubject: Subscription messageTypingSubject: Subscription messageOnReconnectSubject: Subscription + messageOnSetRoomId: Subscription messages1: {[key: string]: MessageViewModal[]} = {} MessageAttachmentFileType = MessageAttachmentFileType @@ -155,6 +154,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy date: {[key: string]: Object} = {} handleClickActive = true + constructor( public popoverController: PopoverController, private modalController: ModalController, @@ -188,7 +188,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy ngOnChanges(changes: SimpleChanges): void { this.room = {...this._room} as any - console.log('message', this.room) + if(this.room.local == IDBoolean.false) { this.getMessages() this.subscribeToChanges() @@ -204,6 +204,30 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.roomType = e.roomType; } }) + + this.messageOnSetRoomId?.unsubscribe() + + if(this.room.local == IDBoolean.true) { + this.messageOnSetRoomId = this.chatServiceService.roomDirectOnSetId({$roomId: this.room.$id}).subscribe((data) => { + this.messageOnSetRoomId?.unsubscribe() + + this.room = new RoomViewModel(data) + + const hasMyMessage = this.messages1[this.room.$id].find(e => e.sender.wxUserId == SessionStore.user.UserId) + + if(!hasMyMessage) { + setTimeout(() => { + this.getMessages() + }, 500) + } + + setTimeout(() => { + this.subscribeToChanges() + }, 500) + + }) + } + } subscribeToChanges() { @@ -246,9 +270,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy updateRoomDetails() { - if(!this.room?.local) { - this.chatServiceService.getRoomById(this.room.id) - } + this.chatServiceService.getRoomById(this.room.id) } removeBold() { @@ -420,7 +442,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy memberId: SessionStore.user.UserId, messageId: message.id, requestId: '', - roomId: this.room.$id + roomId: this.room.id }) } } @@ -506,8 +528,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy const index = this.messages1[this.room.$id].findIndex(e => e?.id === updateMessage.id); // Use triple equals for comparison - console.log('updateMessage', updateMessage) - if (index !== -1) { // Check if the item was found this.messages1[this.room.$id][index].info = updateMessage.info this.messages1[this.room.$id][index].message = updateMessage.message @@ -580,6 +600,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy sendTyping() { if(this.room.local == IDBoolean.false) { this.UserTypingRemoteRepositoryService.sendTyping(this.room.id) + } else { + console.log('dont send') } } @@ -768,8 +790,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy if(this.room.id) { message.roomId = this.room.id - } else { - message.roomId = this.room.$id } message.sentAt = new Date().toISOString() @@ -792,7 +812,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy async messageResult(result: Promise> ) { let message = await result - console.log('result', message) if(message.isOk() && this.room.local == IDBoolean.true) { this.room.local = IDBoolean.false; diff --git a/src/app/ui/chat/modal/messages/contacts/contacts.page.ts b/src/app/ui/chat/modal/messages/contacts/contacts.page.ts index fdcc0ccbf..641c52d10 100644 --- a/src/app/ui/chat/modal/messages/contacts/contacts.page.ts +++ b/src/app/ui/chat/modal/messages/contacts/contacts.page.ts @@ -9,6 +9,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service' import { MessageEntity } from 'src/app/core/chat/entity/message'; import { RoomType } from "src/app/core/chat/entity/group"; +import { RoomViewModel } from '../../../store/model/room'; @Component({ selector: 'app-contacts', @@ -69,12 +70,12 @@ export class ContactsPage implements OnInit { async loadUsers() { this.loading = true - const getallChatUsers = await this.contactsRepositoryService.getUsers() + const getallChatUsers = await this.chatServiceService.getContactList() if(getallChatUsers.isOk()) { - this.allChatUsers = getallChatUsers.value.data.result.sort((a,b) => { + this.allChatUsers = getallChatUsers.value.sort((a,b) => { if(a.wxFullName < b.wxFullName) { return -1; } @@ -163,22 +164,34 @@ export class ContactsPage implements OnInit { this.modalController.dismiss({}); } - select(user: UserContacts) { + async select(user: UserContacts) { - const message = new MessageEntity(); - message.sender = { - userPhoto: '', - wxeMail: SessionStore.user.Email, - wxFullName: SessionStore.user.FullName, - wxUserId: SessionStore.user.UserId + // const result = await this.chatServiceService.sendMessage(message, RoomType.Direct) + + const result = await this.chatServiceService.roomCreateLocalDirectMessage({ + roomName: user.wxFullName, + receiverId: user.wxUserId, + }); + + if(result.isOk()) { + + const room = await this.chatServiceService.roomGetLocalById({ + $roomId: result.value + }) + + if(room.isOk()) { + + console.log('room', room) + console.log('result.value', result.value) + console.log('receiverId', user.wxUserId) + + this.modalController.dismiss(new RoomViewModel(room.value)) + } + + } else { + // } - message.receiverId = user.wxUserId - - message.message = 'hello' - - this.chatServiceService.sendMessage(message, RoomType.Group) - } } diff --git a/src/app/ui/chat/modal/messages/messages.page.html b/src/app/ui/chat/modal/messages/messages.page.html index 80150f7d8..9c589772f 100644 --- a/src/app/ui/chat/modal/messages/messages.page.html +++ b/src/app/ui/chat/modal/messages/messages.page.html @@ -10,7 +10,7 @@
- {{ roomData.roomName }} + {{ room?.roomName }}
diff --git a/src/app/ui/chat/modal/messages/messages.page.ts b/src/app/ui/chat/modal/messages/messages.page.ts index 994944c19..9537dce01 100644 --- a/src/app/ui/chat/modal/messages/messages.page.ts +++ b/src/app/ui/chat/modal/messages/messages.page.ts @@ -55,6 +55,7 @@ import { LastMessage } from '../../utils/lastMessage'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { FileSystemMobileService } from 'src/app/infra/file-system/mobile/file-system-mobile.service'; +import { RoomViewModel } from '../../store/model/room'; const IMAGE_DIR = 'stored-images'; @@ -148,6 +149,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { IMessageType = IMessageType handleClickActive = false + room!: RoomViewModel + constructor( public popoverController: PopoverController, private modalController: ModalController, @@ -178,6 +181,10 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.roomId = this.navParams.get('roomId'); + this.room = this.navParams.get('room'); + + console.log('room', this.room) + this.roomData$ = this.RoomLocalRepository.getRoomByIdLive(this.roomId) diff --git a/version/git-version.ts b/version/git-version.ts index 287a4bf34..dad9b04eb 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,11 +1,11 @@ export let versionData = { - "shortSHA": "263f59326", - "SHA": "263f593260f41c86f36c984e82cd023adb6bdbd2", + "shortSHA": "eeaade9aa", + "SHA": "eeaade9aabf2466b5d4d00c8a2acff737a984040", "branch": "feature/chat-new-api-peter", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Tue Sep 17 17:28:50 2024 +0100'", - "lastCommitMessage": "fix delete member and add member", - "lastCommitNumber": "6077", - "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 5 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/core/chat/repository/room/room-socket-repository.ts\n\tmodified: src/app/module/chat/data/repository/room/room-socket-repository.service.ts\n\tmodified: src/app/module/chat/domain/chat-service.service.ts\n\tnew file: src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts\n\tmodified: src/app/ui/chat/chat.page.html", + "lastCommitTime": "'Tue Sep 17 18:05:47 2024 +0100'", + "lastCommitMessage": "update room bold", + "lastCommitNumber": "6078", + "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 6 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/core/chat/entity/group.ts\n\tmodified: src/app/core/chat/repository/room/room-local-repository.ts\n\tmodified: src/app/infra/database/dexie/instance/chat/schema/message.ts\n\tmodified: src/app/infra/socket/signalR/signalR.ts\n\tmodified: src/app/module/chat/data/async/list/rooms/roomListChangeDetector.ts\n\tmodified: src/app/module/chat/data/repository/room/room-local-repository.service.ts\n\tmodified: src/app/module/chat/domain/chat-service.service.ts\n\tmodified: src/app/module/chat/domain/use-case/contact/contact-list.service.ts\n\tmodified: src/app/module/chat/domain/use-case/message/message-create-use-case.service.ts\n\tnew file: src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.service.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-get-list-use-case.service.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-set-last-message.service.ts\n\tmodified: src/app/ui/chat/chat.page.ts\n\tmodified: src/app/ui/chat/component/messages/messages.page.html\n\tmodified: src/app/ui/chat/component/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/messages/contacts/contacts.page.ts\n\tmodified: src/app/ui/chat/modal/messages/messages.page.html\n\tmodified: src/app/ui/chat/modal/messages/messages.page.ts\n\tmodified: version/git-version.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file