Merge with websocket branch

This commit is contained in:
Eudes Inácio
2022-01-19 09:12:30 +01:00
46 changed files with 1631 additions and 729 deletions
+58 -87
View File
@@ -23,6 +23,8 @@ import { StorageService } from 'src/app/services/storage.service';
import { Directory, Filesystem } from '@capacitor/filesystem';
import { ViewEventPage } from 'src/app/modals/view-event/view-event.page';
import { Storage } from '@ionic/storage';
import { WsChatMethodsService} from 'src/app/services/chat/ws-chat-methods.service'
import { WsChatService } from 'src/app/services/chat/ws-chat.service'
const IMAGE_DIR = 'stored-images';
@Component({
@@ -86,30 +88,31 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
private sqliteservice: SqliteService,
private storageservice: StorageService,
private router: Router,
private storage: Storage
private storage: Storage,
public wsChatMethodsService: WsChatMethodsService,
public WsChatService: WsChatService
) {
this.loggedUser = authService.ValidatedUserChat['data'];
/* this.dm = this.navParams.get('dm'); */
}
ngOnChanges(changes: SimpleChanges): void {
this.load();
this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory()
//throw new Error('Method not implemented.');
this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked
this.getMessageDB();
setTimeout(()=>{
this.scrollToBottomClicked()
}, 50)
}
ngOnInit() {
this.scrollToBottom();
/* setInterval(()=>{ */
this.load();
/* }, 9000); */
console.log(this.roomId);
console.log("Chat route", this.route.url)
this.setStatus('online');
this.getMessageDB();
}
onPressingMessage() {
@@ -153,7 +156,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
ev.target.complete();
}
scrollToBottom(): void {
scrollToBottom = () => {
try {
if (this.scrollingOnce) {
this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight;
@@ -162,7 +165,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
} catch (err) { }
}
scrollToBottomClicked(): void {
scrollToBottomClicked = () => {
console.log('scroll')
try {
this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight;
//this.scrollingOnce = false;
@@ -234,20 +238,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
sendMessage() {
let body = {
"message":
{
"rid": this.roomId, "msg": this.message,
}
}
this.chatService.sendMessage(body).subscribe(res => {
this.scrollingOnce = true;
});
this.wsChatMethodsService.getDmRoom(this.roomId).send(this.message)
this.message = "";
}
deleteMessage(msgId: string) {
deleteMessage(msgId:string) {
let body = {
"roomId": this.roomId,
"msgId": msgId,
@@ -259,22 +254,23 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}); */
}
getMessageDB() {
this.storage.get('chatmsg').then((msg) => {
console.log('FROM DB WEB', msg)
let msgArray = [];
msgArray = msg;
msgArray.filter(data => data._id != this.roomId);
this.messages = msgArray.reverse();
this.messages = msgArray;
console.log("MSG CHAT WEB", this.messages)
})
}
async transformData(res) {
let mgsArray = [];
res.map(async element => {
res.forEach(async element => {
console.log('TRANSFORM DATA ELEMENT' ,element)
if (element.file) {
if (element.file.guid) {
@@ -342,29 +338,13 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
loadMessages() {
//this.showLoader = true;
const roomId = this.roomId
this.chatService.getRoomMessages(this.roomId).subscribe(async res => {
console.log('ALL MSG FROM CHATROCK', res);
await this.transformData(res['messages']);
//this.getFileFromLakeFS();
/* this.messages = res['messages'].reverse();
this.chatMessageStore.add(roomId, this.messages) */
async viewDocument(msg:any, url?:string){
if(msg.file.type == "application/img"){
let response:any = await this.fileService.getFile(msg.file.guid).toPromise();
console.log(response);
alert(response);
console.log(this.messages);
//this.serverLongPull(res)
/* this.chatService.subscribe(this.roomId).then(res => {
console.log("Real fake msg", res)
}); */
//this.showLoader = false;
})
}
async viewDocument(msg: any, url?: string) {
console.log('FILE TYPE', msg.file.type)
if (msg.file.type == "application/img") {
this.downloadFileMsg(msg)
//this.openPreview(msg);
}
else if (msg.file.type == "application/webtrix") {
@@ -633,7 +613,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.showLoader = false;
//this.addDocGestaoDocumental();
}
this.loadMessages();
});
}
@@ -646,43 +625,35 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
console.log('serverLongPull', res['success']);
if (res['success'] == true) {
// Show Error
//showMessage(response.statusText);
console.log('ALL MSG FROM CHATROCK', res);
/* this.transformData(res['messages']);*/
await this.transformData(res['messages']);
this.getMessageDB();
if (res['success'] == true) {
// Show Error
//showMessage(response.statusText);
/* this.messages = res['messages'].reverse();
this.chatMessageStore.add(roomId, this.messages) */
console.log('MSG FROM ROCKET ', res['messages'].reverse())
/* this.transformData(res['messages'].reverse());
this.getMessageDB(); */
/*
this.messages = res['messages'].reverse();
this.chatMessageStore.add(roomId, this.messages) */
//console.log(this.messages);
// Reconnect in one second
if (this.route.url != "/home/chat") {
console.log("Timer message stop")
//console.log(this.messages);
// Reconnect in one second
if(this.route.url != "/home/chat"){
console.log("Timer message stop")
}
else{
if(document.querySelector('app-messages')){
await new Promise(resolve => setTimeout(resolve, 5000));
// await this.serverLongPull();
this.getDirectMessages.emit();
console.log('Timer message running')
}
else {
if (document.querySelector('app-messages')) {
await new Promise(resolve => setTimeout(resolve, 5000));
await this.serverLongPull();
this.getDirectMessages.emit();
console.log('Timer message running')
}
}
} /* else {
// Got message
//let message = await response.text();
//this.loadMessages()
await this.serverLongPull();
} */
}, (error) => {
console.log(error);
this.serverLongPull();
});
} sliderOpts = {
}
}
}, (error) => {
console.log(error);
});
}
sliderOpts = {
zoom: false,
slidesPerView: 1.5,
spaceBetween: 20,