2024-06-05 10:28:38 +01:00
< ion-header class = "ion-no-border" >
< ion-toolbar class = "header-toolbar" >
< div class = "main-header" * ngIf = "roomData$ | async as roomData" >
2021-03-04 18:50:26 +01:00
< div class = "header-top" >
2024-06-05 10:28:38 +01:00
< div class = "middle" >
< ion-label class = "title" > {{ roomData.roomName }}< / ion-label >
2022-10-11 15:35:50 +01:00
<!-- <button (click)="ChatMessageDebuggingPage()">Dev</button> -->
2024-06-05 10:28:38 +01:00
< span > < ion-icon * ngIf = "RochetChatConnectorService.isLogin" class = "online" name = "ellipse" > < / ion-icon > < / span >
2021-03-04 18:50:26 +01:00
< / div >
2024-06-10 16:34:43 +01:00
< div class = "right" >
2022-01-19 12:32:29 +01:00
< button title = "Menu" class = "btn-no-color" ( click ) = " _openMessagesOptions ( ) " >
2023-11-14 12:04:31 +01:00
< ion-icon * ngIf = "ThemeService.currentTheme == 'default' " src = "assets/images/theme/blue/icons-menu.svg" > < / ion-icon >
2022-01-12 17:02:41 +01:00
< ion-icon * ngIf = "ThemeService.currentTheme == 'gov' " src = "assets/images/theme/gov/icons-menu.svg" >
< / ion-icon >
2021-04-09 08:59:22 +01:00
< / button >
2021-07-23 14:43:51 +01:00
< / div >
2021-03-04 18:50:26 +01:00
< / div >
2024-06-13 12:11:17 +01:00
< div class = "d-flex header-bottom" >
2024-07-16 14:15:58 +01:00
2024-06-13 12:11:17 +01:00
< div class = "header-bottom-icon" >
< ion-icon * ngIf = "ThemeService.currentTheme == 'default' " src = "assets/icon/icons-user.svg" > < / ion-icon >
< ion-icon * ngIf = "ThemeService.currentTheme == 'gov' " src = "assets/icon/theme/gov/icons-user.svg" > < / ion-icon >
< / div >
2024-06-12 12:54:38 +01:00
2024-06-13 12:11:17 +01:00
< ion-list class = "header-bottom-contacts" * ngIf = "roomMembers$ | async as memberList" >
< ng-container * ngFor = "let user of memberList; let i = index" >
{{ user.user.wxFullName }}< ng-container * ngIf = "i < memberList.length - 1" > , < / ng-container >
< / ng-container >
2024-06-12 12:54:38 +01:00
< / ion-list >
2024-06-13 12:11:17 +01:00
2024-07-17 16:39:18 +01:00
2021-03-04 18:50:26 +01:00
< / div >
< / div >
2024-06-12 12:54:38 +01:00
< ion-refresher name = "refresher" slot = "fixed" ( ionRefresh ) = " doRefresh ( $ event ) " >
< ion-progress-bar type = "indeterminate" * ngIf = "showLoader" > < / ion-progress-bar >
< ion-refresher-content >
< / ion-refresher-content >
< / ion-refresher >
2021-03-04 18:50:26 +01:00
< / ion-toolbar >
< / ion-header >
2024-06-05 10:28:38 +01:00
< ion-content >
2022-04-22 16:39:46 +01:00
2024-06-12 12:54:38 +01:00
< div class = "messages height-100 width-100 d-flex flex-column" # scrollMe >
2024-06-05 14:31:26 +01:00
2024-07-16 14:15:58 +01:00
< div
* ngFor = "let message of roomMessage$ | async" class = "messages-list-item-wrapper"
2024-06-12 12:54:38 +01:00
[ ngClass ] = " { ' my-message ' : message . sender . wxUserId = == sessionStore . user . UserId , ' other-message ' : message . sender . wxUserId ! = = sessionStore . user . UserId } " >
2024-07-26 16:54:32 +01:00
< div class = "message-wrapper" >
{{ message.message }} == {{ message.id }}
< div class = "message-item-options d-flex justify-content-end" >
< fa-icon [ matMenuTriggerFor ] = " beforeMenu " icon = "chevron-down" class = "message-options-icon cursor-pointer" >
< / fa-icon >
< mat-menu # beforeMenu = "matMenu" xPosition = "before" >
< button ( click ) = " deleteMessage ( ) " class = "menuButton" > Apagar mensagem< / button >
< / mat-menu >
< / div >
< / div >
2024-06-10 16:34:43 +01:00
< / div >
2024-07-26 16:54:32 +01:00
2021-03-04 18:50:26 +01:00
< / div >
2022-03-25 12:25:17 +01:00
2021-09-24 15:39:25 +01:00
< ion-fab horizontal = "end" vertical = "bottom" slot = "fixed" >
< ion-fab-button * ngIf = "scrollToBottomBtn" ( click ) = " scrollToBottomClicked ( ) " color = "light" size = "small" >
< ion-icon name = "chevron-down" > < / ion-icon >
< / ion-fab-button >
< / ion-fab >
2021-03-04 18:50:26 +01:00
2024-07-17 16:39:18 +01:00
< ion-fab horizontal = "start" vertical = "bottom" slot = "fixed" >
< div # array >
< / div >
< / ion-fab >
<!-- <div *ngIf="userTyping$?.typingList?.typingList">
<div
*ngFor="let message of userTyping$.typingList.typingList " class="messages - list - item - wrapper"
>
{{ message.userName }}
</div>
</div>
-->
<!-- <div *ngIf="userTyping$" class="header - bottom - contacts" >
<div *ngFor="let typing of userTyping$; let i = index">
{{ typing.userName }}<div *ngIf="i < userTyping$.length - 1">, </div>
</div>
</div>
-->
2021-03-04 18:50:26 +01:00
< / ion-content >
2021-03-12 11:56:54 +01:00
2024-06-05 10:28:38 +01:00
<!-- <ion - footer (click)="ChatSystemService.getDmRoom(roomId).sendReadMessage()"> -->
< ion-footer >
2022-03-25 12:25:17 +01:00
2024-06-05 10:28:38 +01:00
<!-- <div class="typing" *ngIf="ChatSystemService.getDmRoom(roomId).otherUserType == true" >
2022-02-24 14:59:47 +01:00
<ngx - letters - avatar *ngIf="showAvatar"
2022-09-30 15:13:36 +01:00
[avatarName]= "ChatSystemService.getDmRoom(roomId).name"
2022-02-25 09:54:37 +01:00
[width]="30"
2022-02-24 14:59:47 +01:00
[circular]="true"
2022-02-24 16:21:26 +01:00
fontFamily="Roboto"></ngx - letters - avatar>
2022-02-25 11:08:13 +01:00
está a escrever...
2024-06-05 10:28:38 +01:00
</div> -->
2022-03-14 17:11:00 +01:00
< div class = "width-100 pl-20 pr-20" >
< span * ngIf = "!lastAudioRecorded" > {{durationDisplay}}< / span >
2022-06-29 11:42:31 +01:00
< div class = " audioDiv d-flex width-100 mt-10 mb-10" * ngIf = "lastAudioRecorded" >
< div ( click ) = " start ( audioRecorded ) " * ngIf = "!isPlaying" > < ion-icon slot = "icon-only" name = "play" > < / ion-icon > < / div >
< div ( click ) = " togglePlayer ( isPlaying ) " * ngIf = "isPlaying" > < ion-icon slot = "icon-only" name = "pause" > < / ion-icon > < / div >
< ion-range # range [ ( ngModel ) ] = " audioProgress " max = "100" ( mouseup ) = " seek ( ) " > < / ion-range >
< / div >
2022-03-14 17:11:00 +01:00
< / div >
2022-02-24 13:35:54 +01:00
2021-03-12 17:35:54 +01:00
< div class = "container width-100 d-flex" >
< div >
2022-03-14 17:11:00 +01:00
< ion-fab * ngIf = "!recording && !lastAudioRecorded && allowTyping" horizontal = "start" vertical = "bottom" slot = "fixed" >
2021-10-06 17:27:49 +01:00
< ion-fab-button color = "light" size = "small" >
< ion-icon name = "add" > < / ion-icon >
< / ion-fab-button >
< ion-fab-list side = "top" >
2023-06-19 12:15:39 +01:00
<!-- <ion - fab - button *ngIf="p.userPermission([p.permissionList.Agenda.access])" title="Nova Reunião" (click)="bookMeeting()" color="light">
2021-10-06 17:27:49 +01:00
<ion - icon name="calendar"></ion - icon>
2023-06-19 12:15:39 +01:00
</ion - fab - button> -->
2023-08-31 13:07:52 +01:00
< ion-fab-button title = "Adicionar Documento" ( click ) = " addFile ( ) " color = "light" >
2021-10-06 17:27:49 +01:00
< ion-icon name = "document" > < / ion-icon >
2023-08-31 13:07:52 +01:00
< / ion-fab-button >
2022-01-24 15:21:37 +01:00
< ion-fab-button title = "Anexar Fotografia" ( click ) = " addImage ( ) " color = "light" >
2021-10-06 17:27:49 +01:00
< ion-icon name = "image" > < / ion-icon >
2021-12-23 07:40:01 +01:00
< / ion-fab-button >
2022-02-09 14:34:23 +01:00
< ion-fab-button title = "Tirar Fotografia" ( click ) = " takePictureMobile ( ) " color = "light" >
2021-10-06 17:27:49 +01:00
< ion-icon name = "camera" > < / ion-icon >
2021-12-23 07:40:01 +01:00
< / ion-fab-button >
2022-01-24 15:21:37 +01:00
< ion-fab-button title = "Documento da Gestão Documental" ( click ) = " addFileWebtrix ( ) " color = "light" >
2021-10-07 15:30:36 +01:00
< ion-icon src = "assets/icon/webtrix.svg" > < / ion-icon >
< / ion-fab-button >
2021-10-06 17:27:49 +01:00
< / ion-fab-list >
< / ion-fab >
2022-03-18 11:45:38 +01:00
< button * ngIf = "recording || lastAudioRecorded || !allowTyping" class = "btn-no-color" ( click ) = " deleteRecording ( ) " >
2022-03-14 17:11:00 +01:00
< fa-icon class = "icon-size-27" icon = "trash" > < / fa-icon >
< / button >
2021-03-12 17:35:54 +01:00
< / div >
2021-12-14 23:04:03 +01:00
< div class = "width-100" >
2022-03-14 17:11:00 +01:00
< div * ngIf = "!recording && !lastAudioRecorded" class = "type-message" >
2024-06-05 10:28:38 +01:00
< ion-textarea * ngIf = "allowTyping" ( keyup . enter ) = " sendMessage ( ) " clearOnEdit = "true" placeholder = "Escrever uma mensagem" class = "message-input" rows = "1" [ ( ngModel ) ] = " textField " ( ionChange ) = " sendTyping ( ) " > < / ion-textarea >
2022-03-14 17:11:00 +01:00
< / div >
< div * ngIf = "recording" class = "d-flex align-items-center justify-content-center" >
< button ( click ) = " stopRecording ( ) " class = "btn-no-color d-flex align-items-center justify-content-center" >
2022-03-14 19:07:46 +01:00
< ion-icon class = "icon-size-45" name = "stop-circle-outline" color = "danger" > < / ion-icon >
2021-04-13 14:14:55 +01:00
< / button >
2022-03-14 17:11:00 +01:00
< / div >
2021-03-12 17:35:54 +01:00
< / div >
2022-03-14 19:07:46 +01:00
2021-03-12 17:35:54 +01:00
< div >
2024-06-05 10:28:38 +01:00
< button class = "btn-no-color" ( click ) = " sendMessage ( ) " >
2022-03-14 17:11:00 +01:00
< ion-icon * ngIf = "ThemeService.currentTheme == 'default' " class = "chat-icon-send" src = "assets/icon/theme/gov/icons-chat-send.svg" > < / ion-icon >
< ion-icon * ngIf = "ThemeService.currentTheme == 'gov' " class = "chat-icon-send" src = "assets/icon/theme/gov/icons-chat-send.svg" > < / ion-icon >
2021-04-09 08:59:22 +01:00
< / button >
2024-06-05 10:28:38 +01:00
2021-03-12 17:35:54 +01:00
< / div >
< / div >
2022-01-24 15:21:37 +01:00
< / ion-footer >