From 9da65a1e7be721fb69c0b820b02a19e171b484d2 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 19 Sep 2024 23:36:59 +0100 Subject: [PATCH] fix open pdf and member list --- .../mobile/file-system-mobile.service.ts | 12 +++- .../room/room-update-name-sync.service.ts | 1 + src/app/ui/chat/chat.page.ts | 14 +++- .../component/messages/messages.page.html | 2 +- .../chat/component/messages/messages.page.ts | 15 +++++ .../modal/chat-popover/chat-popover.page.scss | 5 +- .../modal/edit-group/edit-group.page.html | 5 +- .../chat/modal/edit-group/edit-group.page.ts | 39 ++++++++--- .../group-contacts/group-contacts.page.ts | 9 ++- .../messages/contacts/contacts.page.html | 2 +- .../ui/chat/modal/messages/messages.page.html | 6 +- .../ui/chat/modal/messages/messages.page.ts | 67 ++++++++++++++++--- .../ui/chat/modal/new-group/new-group.page.ts | 18 +++-- .../chat/modal/room-info/room-info.page.html | 17 ++++- .../ui/chat/modal/room-info/room-info.page.ts | 5 +- .../set-room-owner/set-room-owner.page.html | 2 +- src/app/ui/chat/store/roomStore.ts | 37 +++++++++- version/git-version.ts | 12 ++-- 18 files changed, 215 insertions(+), 53 deletions(-) diff --git a/src/app/infra/file-system/mobile/file-system-mobile.service.ts b/src/app/infra/file-system/mobile/file-system-mobile.service.ts index f6323056f..519354ac2 100644 --- a/src/app/infra/file-system/mobile/file-system-mobile.service.ts +++ b/src/app/infra/file-system/mobile/file-system-mobile.service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@angular/core'; import { File, IWriteOptions } from '@awesome-cordova-plugins/file/ngx'; import { err, ok, Result } from 'neverthrow'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; +import { Logger } from 'src/app/services/logger/main/service'; @Injectable({ @@ -29,7 +30,12 @@ export class FileSystemMobileService { const result = await this.file.writeFile(path, fileName, context, { replace: true }) return ok(result) } catch (e) { - console.log('Error writing file', e) + Logger.error('Error writing file', { + path, + fileName, + context + }) + console.error('Error writing file', e) return err(e) } } @@ -39,6 +45,10 @@ export class FileSystemMobileService { const result = this.FileOpener.open(filePath, mimetype) return ok(result) } catch (e) { + Logger.error('Error opening file', { + filePath, + mimetype + }) console.error('Error opening file', e) return err(e) } diff --git a/src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts b/src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts index 2d2af0239..c0628e75c 100644 --- a/src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts +++ b/src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts @@ -16,6 +16,7 @@ export class RoomUpdateNameSyncService { private watch() { this.roomSocketRepository.listenToRoomUpdate().subscribe((event) => { + console.log('listenToRoomUpdate') this.GetRoomByIdUseCaseService.execute(event.data.id) }) } diff --git a/src/app/ui/chat/chat.page.ts b/src/app/ui/chat/chat.page.ts index d60bf4ac2..bab6efdc3 100644 --- a/src/app/ui/chat/chat.page.ts +++ b/src/app/ui/chat/chat.page.ts @@ -7,7 +7,7 @@ import { ModalController } from '@ionic/angular'; import { GroupMessagesPage } from './modal/group-messages/group-messages.page'; import { ContactsPage } from './modal/./messages/contacts/contacts.page'; import { MessagesPage } from './modal/./messages/messages.page'; -import { NewGroupPage } from './modal/./new-group/new-group.page'; +import { INewGroupModalOutPut, NewGroupPage } from './modal/./new-group/new-group.page'; import { Observable, Subject } from "rxjs/Rx"; import { Router, NavigationEnd } from '@angular/router'; import { TimeService } from 'src/app/services/functions/time.service'; @@ -476,7 +476,17 @@ export class ChatPage implements OnInit { cssClass: 'modal modal-desktop', }); await modal.present(); - modal.onDidDismiss(); + modal.onDidDismiss().then((event) => { + if(event.data?.roomId) { + const room = this.rooms.find(e => e.id == (event.data.roomId)) + + if(room) { + this.openMessagesPage(room.$id) + } else { + Logger.error('Cant find room after creating chat.page.ts/newGroup') + } + } + }) } async editGroup(roomId) { diff --git a/src/app/ui/chat/component/messages/messages.page.html b/src/app/ui/chat/component/messages/messages.page.html index 6424b401f..68caebb27 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 679a20597..a8e5c1e43 100644 --- a/src/app/ui/chat/component/messages/messages.page.ts +++ b/src/app/ui/chat/component/messages/messages.page.ts @@ -230,6 +230,18 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } + + stop() { + this.messageReceiveSubject?.unsubscribe(); + this.messageDeleteSubject?.unsubscribe(); + this.messageUpdateSubject?.unsubscribe(); + this.messageSendSubject?.unsubscribe(); + this.messageTypingSubject?.unsubscribe(); + this.messageOnReconnectSubject?.unsubscribe(); + this.messageOnSetRoomId?.unsubscribe(); + this.newMessagesStream?.unsubscribe(); + } + subscribeToChanges() { this.listenToIncomingMessage(); this.listenToDeleteMessage(); @@ -479,6 +491,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } } + //this.sendReadMessage() + setTimeout(() => { this.scrollToBottomClicked() }, 100) @@ -695,6 +709,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy // window.addEventListener('scroll', this.scrollChangeCallback, true); } ngOnDestroy() { + // this.stop() window.removeEventListener('scroll', this.scrollChangeCallback, true); this.handleClickActive = false; // Disable the listener before component destruction } diff --git a/src/app/ui/chat/modal/chat-popover/chat-popover.page.scss b/src/app/ui/chat/modal/chat-popover/chat-popover.page.scss index 736f0bfa3..6b1041b83 100644 --- a/src/app/ui/chat/modal/chat-popover/chat-popover.page.scss +++ b/src/app/ui/chat/modal/chat-popover/chat-popover.page.scss @@ -17,8 +17,9 @@ .buttons{ display: flex; - flex-wrap: wrap; - justify-content: space-around; + flex-direction: column; + align-items: center; + justify-content: center; } .solid { display: block; diff --git a/src/app/ui/chat/modal/edit-group/edit-group.page.html b/src/app/ui/chat/modal/edit-group/edit-group.page.html index 3662f1dde..848b51e2f 100644 --- a/src/app/ui/chat/modal/edit-group/edit-group.page.html +++ b/src/app/ui/chat/modal/edit-group/edit-group.page.html @@ -16,6 +16,7 @@ + @@ -38,7 +39,7 @@ - - + + diff --git a/src/app/ui/chat/modal/edit-group/edit-group.page.ts b/src/app/ui/chat/modal/edit-group/edit-group.page.ts index 5ac98c026..dd01f648c 100644 --- a/src/app/ui/chat/modal/edit-group/edit-group.page.ts +++ b/src/app/ui/chat/modal/edit-group/edit-group.page.ts @@ -1,7 +1,11 @@ -import { HttpErrorResponse } from '@angular/common/http'; +import { HttpErrorResponse, HttpResponse } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams, PickerController } from '@ionic/angular'; +import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service'; +import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { ThemeService } from 'src/app/services/theme.service' +import { ToastService } from 'src/app/services/toast.service'; +import { ZodError } from 'zod'; @Component({ selector: 'app-edit-group', @@ -21,7 +25,10 @@ export class EditGroupPage implements OnInit { private modalController: ModalController, private pickerController: PickerController, private navParams: NavParams, - public ThemeService: ThemeService + public ThemeService: ThemeService, + private httpErrorHandle: HttpErrorHandle, + private toastService: ToastService, + private chatServiceService: ChatServiceService, ) { this.roomId = this.navParams.get('roomId'); } @@ -39,17 +46,27 @@ export class EditGroupPage implements OnInit { this.modalController.dismiss(); } - changeGroupName(){ - if(this.groupName.trim().length > 1){ - let name = this.groupName.split(' ').join('-'); - let body = { - "roomId": this.room._id, - "name": name, - } - } - else{ + async changeGroupName() { + this.showLoader = true + const result = await this.chatServiceService.updateRoomById({ + roomId: this.roomId, + roomName: this.groupName, + roomType: 0 + }) + if(result.isOk()) { + this.modalController.dismiss(); + } else if (result.error instanceof HttpResponse) { + this.httpErrorHandle.httpStatusHandle(result.error) + } else if (result.error instanceof ZodError) { + this.toastService._badRequest("Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico.") + console.log(result.error.errors) + } else { + this.toastService._badRequest("Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico.") + console.log(result.error) } + + this.showLoader = false } _ionChange(event){ this.showDuration = event.detail.checked; diff --git a/src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts b/src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts index f817933cc..cde29c314 100644 --- a/src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts @@ -2,8 +2,6 @@ import { HttpClient, HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams } from '@ionic/angular'; import * as _ from 'lodash'; -import { AuthService } from 'src/app/services/auth.service'; -import { GroupMessagesPage } from '../group-messages.page'; import { ThemeService } from 'src/app/services/theme.service' import { SessionStore } from 'src/app/store/session.service'; import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; @@ -12,7 +10,12 @@ import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/m import { UserContacts } from 'src/app/services/Repositorys/contacts/data-source/contacts-data-source.service'; import { ToastService } from 'src/app/services/toast.service'; import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service'; -import { ZodError } from 'zod'; +import { z, ZodError } from 'zod'; + +const GroupContactsPageOutPutSchema = z.object({ + roomId: z.string().optional() +}) +export type IGroupContactsPageOutPutSchema = z.infer @Component({ diff --git a/src/app/ui/chat/modal/messages/contacts/contacts.page.html b/src/app/ui/chat/modal/messages/contacts/contacts.page.html index 3a5a6ab14..12184eea7 100644 --- a/src/app/ui/chat/modal/messages/contacts/contacts.page.html +++ b/src/app/ui/chat/modal/messages/contacts/contacts.page.html @@ -11,7 +11,7 @@
- Nova Conversa .. + Nova Conversa
diff --git a/src/app/ui/chat/modal/messages/messages.page.html b/src/app/ui/chat/modal/messages/messages.page.html index 7390a0ec2..5734eb3b9 100644 --- a/src/app/ui/chat/modal/messages/messages.page.html +++ b/src/app/ui/chat/modal/messages/messages.page.html @@ -21,7 +21,7 @@ -
+
-
-
+
+
diff --git a/src/app/ui/chat/modal/messages/messages.page.ts b/src/app/ui/chat/modal/messages/messages.page.ts index 50e5582ac..05b029923 100644 --- a/src/app/ui/chat/modal/messages/messages.page.ts +++ b/src/app/ui/chat/modal/messages/messages.page.ts @@ -44,6 +44,8 @@ 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'; import { RoomStore } from '../../store/roomStore' +import { GroupContactsPage, IGroupContactsPageOutPutSchema } from '../group-messages/group-contacts/group-contacts.page'; +import { EditGroupPage } from '../edit-group/edit-group.page'; const IMAGE_DIR = 'stored-images'; @@ -101,7 +103,6 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { selectedMessage: any = null; emojis: string[] = ['😊', '😂', '❤️', '👍', '😢']; // Add more emojis as needed textField = '' - roomType!: RoomType MessageAttachmentFileType = MessageAttachmentFileType MessageAttachmentFileSource = MessageAttachmentSource @@ -140,6 +141,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.RoomStore.start(this.room) } + @HostListener('document:click', ['$event']) handleClickOutside(event: Event) { if (!this.handleClickActive) return; @@ -360,6 +362,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { } ngOnDestroy() { + this.RoomStore.stop() window.removeEventListener('scroll', this.scrollChangeCallback, true); this.handleClickActive = false; // Disable the listener before component destruction } @@ -512,29 +515,73 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { roomId: this.room.id, members: [], isAdmin: this.RoomStore.isAdmin, - roomType: this.roomType + roomType: this.RoomStore.room.roomType }, cssClass: 'messages-options', event: ev, translucent: true, }); - return await popover.present(); + await popover.present(); + popover.onDidDismiss().then(res => { + + if (res.data == 'leave') { + this.modalController.dismiss() + } + else if (res.data == 'delete') { + this.modalController.dismiss() + } + else if (res.data == 'cancel') { + this.modalController.dismiss() + } + else if (res.data == 'edit') { + + //this.closeAllDesktopComponents.emit(); + this.editGroup() + } else if (res.data == 'addUser') { + + this.addContacts(); + } + else {} + }); } async addContacts() { + const modal = await this.modalController.create({ - component: ContactsPage, - componentProps: {}, + component: GroupContactsPage, + componentProps: { + roomId: this.RoomStore.room.id, + }, cssClass: 'contacts', backdropDismiss: false }); + modal.onDidDismiss().then(result => { - modal.onDidDismiss(); + // this.modalController.dismiss({roomId}) + + }); await modal.present(); } + async editGroup() { + const modal = await this.modalController.create({ + component: EditGroupPage, + cssClass: 'modal modal-desktop', + componentProps: { + roomId: this.RoomStore.room.id, + }, + }); + await modal.present(); + modal.onDidDismiss().then((res) => { + + this.RoomStore.updateRoomDetails() + // this.getRoomInfo(); + //this.modalController.dismiss(res.data); + }); + } + async onImageError() {} async onImageLoad(message: MessageViewModal, index:number) { @@ -717,7 +764,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { const fileName = file.value.name - const validation = await allowedDocExtension(fileName) + const validation = await allowedDocExtension(file.value.type) if (validation.isOk()) { @@ -730,12 +777,14 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { fileName: file.value.name, source: MessageAttachmentSource.Device, fileType: MessageAttachmentFileType.Doc, - mimeType: file.value.type + mimeType: file.value.type, + description: file.value.name }]) } } else { + console.log({fileName}) this.toastService._badRequest("Ficheiro inválido") } } @@ -904,7 +953,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { }); modal.present(); } else { - this.openFile(msg.attachments[0].safeFile, msg.attachments[0].description, msg.attachments[0].mimeType); + this.openFile(msg.attachments[0].safeFile, msg.attachments[0].fileName || msg.attachments[0].description, msg.attachments[0].mimeType); } } diff --git a/src/app/ui/chat/modal/new-group/new-group.page.ts b/src/app/ui/chat/modal/new-group/new-group.page.ts index 10fcf1953..7d7b279e9 100644 --- a/src/app/ui/chat/modal/new-group/new-group.page.ts +++ b/src/app/ui/chat/modal/new-group/new-group.page.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams, PickerController, PopoverController } from '@ionic/angular'; import { GroupDurationPage } from 'src/app/shared/popover/group-duration/group-duration.page'; -import { GroupContactsPage } from '../group-messages/group-contacts/group-contacts.page'; +import { GroupContactsPage, IGroupContactsPageOutPutSchema } from '../group-messages/group-contacts/group-contacts.page'; import { ThemeService } from 'src/app/services/theme.service'; import { SessionStore } from 'src/app/store/session.service'; import { ToastService } from 'src/app/services/toast.service'; @@ -9,8 +9,14 @@ import { catchError } from 'rxjs/operators'; import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service' import { UDate } from 'src/app/utils/date'; import { HttpErrorResponse } from '@angular/common/http'; +import { z } from 'zod'; +const NewGroupModalOutPutSchema = z.object({ + roomId: z.string().optional() +}) +export type INewGroupModalOutPut = z.infer + @Component({ selector: 'app-new-group', templateUrl: './new-group.page.html', @@ -82,12 +88,10 @@ export class NewGroupPage implements OnInit { - async addContacts(roomId) { - this.close(); + async addContacts(roomId:string) { let name = this.groupName.split(' ').join('-'); - const modal = await this.modalController.create({ component: GroupContactsPage, componentProps: { @@ -98,7 +102,11 @@ export class NewGroupPage implements OnInit { }); - modal.onDidDismiss(); + modal.onDidDismiss().then(result => { + + this.modalController.dismiss({roomId}) + + }); await modal.present(); } diff --git a/src/app/ui/chat/modal/room-info/room-info.page.html b/src/app/ui/chat/modal/room-info/room-info.page.html index 9d01b7a15..ec8fad4dc 100644 --- a/src/app/ui/chat/modal/room-info/room-info.page.html +++ b/src/app/ui/chat/modal/room-info/room-info.page.html @@ -1,7 +1,18 @@ - - {{ roomData.roomName }} - +
+ + {{ roomData.roomName }} + +
+ + + +
+
+
diff --git a/src/app/ui/chat/modal/room-info/room-info.page.ts b/src/app/ui/chat/modal/room-info/room-info.page.ts index 7c261a76f..2af0a1760 100644 --- a/src/app/ui/chat/modal/room-info/room-info.page.ts +++ b/src/app/ui/chat/modal/room-info/room-info.page.ts @@ -7,6 +7,8 @@ import { RoomTable } from 'src/app/infra/database/dexie/instance/chat/schema/roo import { map, tap } from 'rxjs/operators'; import { ChatServiceService } from 'src/app/module/chat/domain/chat-service.service' import { MemberEntity } from 'src/app/core/chat/entity/member'; +import { ThemeService } from 'src/app/services/theme.service' + @Component({ selector: 'app-room-info', templateUrl: './room-info.page.html', @@ -23,7 +25,8 @@ export class RoomInfoPage implements OnInit { private navParams: NavParams, private MemberListLocalRepository: MemberListLocalRepository, private RoomLocalRepository: RoomLocalRepository, - private ChatServiceService: ChatServiceService + private ChatServiceService: ChatServiceService, + public ThemeService: ThemeService, ) { this.roomId = this.navParams.get('roomId'); } diff --git a/src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html b/src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html index 4235c2393..636901343 100644 --- a/src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html +++ b/src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html @@ -34,7 +34,7 @@

{{user.wxFullName}}

- +
diff --git a/src/app/ui/chat/store/roomStore.ts b/src/app/ui/chat/store/roomStore.ts index a55cf5c00..2277c91e9 100644 --- a/src/app/ui/chat/store/roomStore.ts +++ b/src/app/ui/chat/store/roomStore.ts @@ -38,9 +38,9 @@ export class RoomStore { messageTypingSubject: Subscription messageOnReconnectSubject: Subscription messageOnSetRoomId: Subscription + messageRoomData: Subscription newMessagesStream!: Subscription - roomData$: Observable roomStatus$: DexieObservable roomMessage$: DexieObservable roomMembers$: Observable @@ -71,10 +71,41 @@ export class RoomStore { } else { await this.getMessages() } + + this.messageRoomData?.unsubscribe(); + + this.messageRoomData = this.RoomLocalRepository.getRoomByIdLive(this.room.$id).subscribe(e => { + if(e) { + this.room = new RoomViewModel(e) + + } + }) + + 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) + + }) + } } stop() { - this.messageReceiveSubject?.unsubscribe(); this.messageReceiveSubject?.unsubscribe(); this.messageDeleteSubject?.unsubscribe(); this.messageUpdateSubject?.unsubscribe(); @@ -194,6 +225,8 @@ export class RoomStore { } } + this.sendReadMessage() + setTimeout(() => { this.scrollToBottomClicked() }, 100) diff --git a/version/git-version.ts b/version/git-version.ts index 16960e27d..a34b92a29 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,11 +1,11 @@ export let versionData = { - "shortSHA": "9e7a8b6cb", - "SHA": "9e7a8b6cb6c099d0b1d828ea61aea1bb4599830e", + "shortSHA": "1f08eb551", + "SHA": "1f08eb5514d617f4e0dbe6e691d740a883c869d0", "branch": "feature/chat-new-api-peter", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Wed Sep 18 19:13:59 2024 +0100'", - "lastCommitMessage": "fix error", - "lastCommitNumber": "6083", - "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is up to date with 'origin/feature/chat-new-api-peter'.\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.html\n\tmodified: src/app/ui/chat/modal/group-messages/group-contacts/group-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: src/app/ui/chat/modal/new-group/new-group.page.ts\n\tmodified: version/git-version.ts", + "lastCommitTime": "'Thu Sep 19 09:16:14 2024 +0100'", + "lastCommitMessage": "mobile create grupo and contact", + "lastCommitNumber": "6084", + "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 1 commit.\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/infra/file-system/mobile/file-system-mobile.service.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-update-name-sync.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/chat-popover/chat-popover.page.scss\n\tmodified: src/app/ui/chat/modal/edit-group/edit-group.page.html\n\tmodified: src/app/ui/chat/modal/edit-group/edit-group.page.ts\n\tmodified: src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts\n\tmodified: src/app/ui/chat/modal/messages/contacts/contacts.page.html\n\tmodified: src/app/ui/chat/modal/messages/messages.page.html\n\tmodified: src/app/ui/chat/modal/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/new-group/new-group.page.ts\n\tmodified: src/app/ui/chat/modal/room-info/room-info.page.html\n\tmodified: src/app/ui/chat/modal/room-info/room-info.page.ts\n\tmodified: src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html\n\tmodified: src/app/ui/chat/store/roomStore.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file