mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
set last message
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { AfterViewInit, Component, ElementRef, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { GestureController, ModalController, NavParams, PopoverController, Platform } from '@ionic/angular';
|
||||
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
|
||||
import { ExpedientTaskModalPageNavParamsTask } from 'src/app/models/ExpedientTaskModalPage';
|
||||
@@ -144,7 +144,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
isAdmin = true
|
||||
RoomTypeEnum = RoomType
|
||||
IMessageType = IMessageType
|
||||
|
||||
handleClickActive = true
|
||||
|
||||
constructor(
|
||||
public popoverController: PopoverController,
|
||||
@@ -219,6 +219,17 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
this.chatServiceService.getRoomById(this.roomId)
|
||||
}
|
||||
|
||||
@HostListener('document:click', ['$event'])
|
||||
handleClickOutside(event: Event) {
|
||||
if (!this.handleClickActive) return;
|
||||
|
||||
const clickedInside = (event.target as HTMLElement).closest('.mat-menu-content');
|
||||
if (!clickedInside) {
|
||||
this.selectedMessage = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async getMessages() {
|
||||
|
||||
|
||||
@@ -660,6 +671,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
|
||||
ngOnDestroy() {
|
||||
window.removeEventListener('scroll', this.scrollChangeCallback, true);
|
||||
this.handleClickActive = false; // Disable the listener before component destruction
|
||||
}
|
||||
|
||||
async sendMessage() {
|
||||
@@ -901,7 +913,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
this.messages1[this.roomId].splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async takePictureMobile() {
|
||||
|
||||
@@ -1131,7 +1143,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
file: result.value.files[0].data,
|
||||
fileName: result.value.files[0].name,
|
||||
source: MessageAttachmentSource.Device,
|
||||
fileType: MessageAttachmentFileType.Doc
|
||||
fileType: MessageAttachmentFileType.Doc,
|
||||
description: result.value.files[0].name
|
||||
}]
|
||||
|
||||
this.messages1[this.roomId].push(message)
|
||||
@@ -1425,9 +1438,9 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
|
||||
async editMessage(message: any) {
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
const modal = await this.popoverController.create({
|
||||
component: EditMessagePage,
|
||||
cssClass: '',
|
||||
cssClass: 'edit-message',
|
||||
componentProps: {
|
||||
message: message.message,
|
||||
roomId: this.roomId,
|
||||
@@ -1448,11 +1461,11 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
toggleEmojiPicker(message: any) {
|
||||
toggleEmojiPicker(message: MessageViewModal) {
|
||||
if (this.selectedMessage === message) {
|
||||
this.selectedMessage = null; // Close the picker if it's already open
|
||||
} else {
|
||||
this.selectedMessage = message; // Open the picker for the selected message
|
||||
this.selectedMessage = message; // Open the picker for the selected message
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user