a lot of changes

This commit is contained in:
Eudes Inácio
2023-09-06 21:23:21 +01:00
parent 9de3019446
commit fb1bd07ad0
25 changed files with 1187 additions and 482 deletions
+53 -34
View File
@@ -150,7 +150,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
async ChatMessageDebuggingPage() {
const modal = await this.modalController.create({
component: ChatMessageDebuggingPage,
cssClass: 'model profile-modal search-submodal',
@@ -612,25 +612,25 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
var byteString = atob(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
// create a view into the buffer
var ia = new Uint8Array(ab);
// set the bytes of the buffer to the correct values
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
var blob = new Blob([ab], {type: mimeString});
var blob = new Blob([ab], { type: mimeString });
return blob;
}
async takePictureMobile() {
@@ -645,7 +645,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
source: CameraSource.Camera
});
var base64 = 'data:image/jpeg;base64,' + file.base64String
var base64 = 'data:image/jpeg;base64,' + file.base64String
const compressedImage = await this.compressImageBase64(
base64,
800, // maxWidth
@@ -785,7 +785,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
//const imageData = await this.fileToBase64Service.convert(file)
//
var base64 = 'data:image/jpeg;base64,' + file.base64String
var base64 = 'data:image/jpeg;base64,' + file.base64String
const compressedImage = await this.compressImageBase64(
base64,
800, // maxWidth
@@ -795,7 +795,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
console.log('Selected: ', picture)
base64 = picture
});
const response = await fetch(base64);
const blob = await response.blob();
@@ -827,23 +827,42 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
async addFileToChat(types: typeof FileType[]) {
const roomId = this.roomId
const file: any = await this.fileService.getFileFromDevice(types);
console.log(file.type)
if (file.type != "application/img" && file.type != "image/png" && file.type != "image/jpeg" && file.type != "image/gif") {
const encodedData = btoa(JSON.stringify(await this.getBase64(file).catch ((error) => {
const encodedData = btoa(JSON.stringify(await this.getBase64(file).catch((error) => {
console.error(error);
})));
const blob = this.fileService.base64toBlob(encodedData, file.type)
const fileBase64 = await this._getBase64(file)
let blob;
let formData
let fileBase64
if (this.platform.is("tablet")) {
blob = this.fileService.base64toBlob(encodedData, file.type)
console.log('BLOB BLOB', blob)
formData = new FormData();
formData.append('blobFile', blob);
/* console.log('add file', fileBase64) */
} else {
blob = this.fileService.base64toBlob(encodedData, file.type)
fileBase64 = await this._getBase64(file)
formData = new FormData();
formData.append('blobFile', blob);
}
const formData = new FormData();
formData.append('blobFile', blob);
this.ChatSystemService.getDmRoom(roomId).send({
@@ -872,7 +891,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
_getBase64(file) {
return new Promise((resolve, reject)=>{
return new Promise((resolve, reject) => {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
@@ -882,7 +901,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
console.log('Error: ', error);
};
})
}
}
getFileReader(): FileReader {
const fileReader = new FileReader();
const zoneOriginalInstance = (fileReader as any)["__zone_symbol__originalInstance"];
@@ -991,7 +1010,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
});
await modal.present();
}
@@ -1094,7 +1113,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.downloadFileMsg(msg)
} else {
var str = msg.attachments[0].image_url
str = str.substring(1, ((str.length) - 1));
@@ -1176,14 +1195,14 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
if (this.room.name) {
try {
this.roomName = this.room.name.split('-').join(' ');
} catch(error) {
} catch (error) {
this.roomName = this.room.name;
}
}
}
if(SessionStore.user.ChatData.data.userId == this.room.u._id){
}
if (SessionStore.user.ChatData.data.userId == this.room.u._id) {
this.isAdmin = true
} else {
this.isAdmin = false
@@ -1199,32 +1218,32 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
return new Promise((resolve, reject) => {
const image = new (window as any).Image();
image.src = base64String;
image.onload = async () => {
const canvas = document.createElement('canvas');
let newWidth = image.width;
let newHeight = image.height;
if (newWidth > maxWidth) {
newHeight *= maxWidth / newWidth;
newWidth = maxWidth;
}
if (newHeight > maxHeight) {
newWidth *= maxHeight / newHeight;
newHeight = maxHeight;
}
canvas.width = newWidth;
canvas.height = newHeight;
const context = canvas.getContext('2d');
context?.drawImage(image, 0, 0, newWidth, newHeight);
const compressedBase64 = canvas.toDataURL('image/jpeg', quality);
resolve(compressedBase64);
};
image.onerror = (error) => {
reject(error);
};