diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts
index 9629ad4..b833bbb 100755
--- a/src/pages/chat/chat.ts
+++ b/src/pages/chat/chat.ts
@@ -8,17 +8,10 @@ declare global {
import { membersMock } from '../../mocks/mock-signature/membersMocks';
import { ApiReturn, Device, Member } from '../../../pkg/sdk_client';
-import {
- Message,
- DocumentSignature,
- } from '../../models/signature.models';
-import { messageStore } from '../../utils/messageMock';
-import { Group } from '../../interface/groupInterface';
import { getCorrectDOM } from '../../utils/document.utils';
import chatStyle from '../../../public/style/chat.css?inline';
import { addressToEmoji } from '../../utils/sp-address.utils';
import Database from '../../services/database.service';
-import Services from '../../services/service';
const storageUrl = `/storage`;
@@ -49,13 +42,10 @@ class ChatElement extends HTMLElement {
private sdkClient: any;
private processId: string | null = null;
private selectedMemberId: string | null = null;
- private messagesMock: any[] = [];
- private dom: Node;
private notifications: LocalNotification[] = [];
private notificationBadge = document.querySelector('.notification-badge');
private notificationBoard = document.getElementById('notification-board');
private notificationBell = document.getElementById('notification-bell');
- private selectedSignatories: DocumentSignature[] = [];
private allMembers = membersMock.map(member => ({
id: member.id,
name: member.name,
@@ -68,14 +58,10 @@ class ChatElement extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
- this.messagesMock = messageStore.getMessages();
- this.dom = getCorrectDOM('signature-element');
this.processId = this.getAttribute('process-id');
- // Initialiser sdkClient
this.initSDKClient();
- // Récupérer le processId depuis l'attribut du composant
console.log('🔍 Constructor - Process ID from element:', this.processId);
this.shadowRoot!.innerHTML = `
@@ -570,18 +556,15 @@ class ChatElement extends HTMLElement {
const senderEmoji = await addressToEmoji(message.metadata.sender);
- // Vérifier si c'est un fichier
if (message.metadata.type === 'file') {
let fileContent = '';
if (message.metadata.fileType.startsWith('image/')) {
- // Afficher l'image
fileContent = `
`;
} else {
- // Afficher un lien pour télécharger le fichier
const blob = this.base64ToBlob(message.metadata.fileData, message.metadata.fileType);
const url = URL.createObjectURL(blob);
fileContent = `
@@ -704,71 +687,6 @@ class ChatElement extends HTMLElement {
}
- // Toggle the list of Roles
- private toggleRoles(group: Group, groupElement: HTMLElement) {
- console.log('=== toggleRoles START ===');
- console.log('Group:', group.name);
- console.log('Group roles:', group.roles); // Afficher tous les rôles disponibles
-
- let roleList = groupElement.querySelector('.role-list');
- console.log('Existing roleList:', roleList);
-
- if (roleList) {
- const roleItems = roleList.querySelectorAll('.role-item');
- roleItems.forEach(roleItem => {
- console.log('Processing roleItem:', roleItem.innerHTML); // Voir le contenu HTML complet
-
- let container = roleItem.querySelector('.role-item-container');
- if (!container) {
- container = document.createElement('div');
- container.className = 'role-item-container';
-
- // Créer un span pour le nom du rôle
- const nameSpan = document.createElement('span');
- nameSpan.className = 'role-name';
- nameSpan.textContent = roleItem.textContent?.trim() || '';
-
- container.appendChild(nameSpan);
- roleItem.textContent = '';
- roleItem.appendChild(container);
- }
-
- // Récupérer le nom du rôle
- const roleName = roleItem.textContent?.trim();
- console.log('Role name from textContent:', roleName);
-
- // Alternative pour obtenir le nom du rôle
- const roleNameAlt = container.querySelector('.role-name')?.textContent;
- console.log('Role name from span:', roleNameAlt);
-
- if (!container.querySelector('.folder-icon')) {
- const folderButton = document.createElement('span');
- folderButton.className = 'folder-icon';
-
- folderButton.addEventListener('click', (event) => {
- event.stopPropagation();
- console.log('Clicked role name:', roleName);
- console.log('Available roles:', group.roles.map(r => r.name));
-
- const role = group.roles.find(r => r.name === roleName);
- if (role) {
- console.log('Found role:', role);
- } else {
- console.error('Role not found. Name:', roleName);
- console.error('Available roles:', group.roles);
- }
- });
-
- container.appendChild(folderButton);
- }
- });
-
- (roleList as HTMLElement).style.display =
- (roleList as HTMLElement).style.display === 'none' ? 'block' : 'none';
- }
- }
-
-
private async loadGroupList(processId: string): Promise {
console.log('Loading group list with processId:', processId);
const groupList = this.shadowRoot?.querySelector('#group-list');
@@ -888,26 +806,6 @@ class ChatElement extends HTMLElement {
(userList as HTMLElement).classList.toggle('show');
}
- // Generate an automatic response
- private generateAutoReply(senderName: string): Message {
- const now = new Date();
- const formattedTime = now.toLocaleString('fr-FR', {
- day: '2-digit',
- month: '2-digit',
- year: 'numeric',
- hour: '2-digit',
- minute: '2-digit'
- });
-
- return {
- id: Date.now(),
- sender: senderName,
- text: "OK...",
- time: formattedTime,
- type: 'text' as const
- };
- }
-
// Send a file
private async sendFile(file: File) {
const MAX_FILE_SIZE = 1 * 1024 * 1024;
@@ -1042,7 +940,6 @@ class ChatElement extends HTMLElement {
const ctx = canvas.getContext('2d');
img.onload = () => {
- // Calculer les nouvelles dimensions
let width = img.width;
let height = img.height;
const MAX_WIDTH = 800;
@@ -1064,7 +961,6 @@ class ChatElement extends HTMLElement {
canvas.height = height;
ctx?.drawImage(img, 0, 0, width, height);
- // Compression avec qualité réduite
resolve(canvas.toDataURL('image/jpeg', 0.7));
};
@@ -1149,7 +1045,6 @@ class ChatElement extends HTMLElement {
private async initSDKClient() {
try {
- // Récupérer l'instance du SDK depuis window ou l'initialiser
this.sdkClient = (window as any).sdk || await this.createSDKClient();
if (!this.sdkClient) {
throw new Error('Failed to initialize SDK client');
@@ -1160,10 +1055,7 @@ class ChatElement extends HTMLElement {
}
private async createSDKClient() {
- // Implémentez ici la logique de création du SDK client
- // Ceci est un exemple, ajustez selon votre implémentation réelle
return new Promise((resolve) => {
- // Logique d'initialisation du SDK
resolve({
is_paired: () => true,
create_new_process: async (template: string, parentId: string | null, relayAddress: string, feeRate: number) => {
@@ -1173,46 +1065,9 @@ class ChatElement extends HTMLElement {
});
}
- private async getExistingConversationProcess(memberId: string) {
- const db = await Database.getInstance();
- try {
- const processStore = 'processes';
- const conversations = [];
- let i = 0;
- let process;
-
+
- do {
- process = await db.getObject(processStore, i.toString());
- if (process) {
- conversations.push(process);
- }
- i++;
- } while (process);
-
- return conversations.find(process =>
- process.description === 'messaging' &&
- process.roles.owner.members.some((m: any) =>
- m.sp_addresses.includes(memberId)
- )
- );
- } catch (error) {
- console.error('Error getting conversation process:', error);
- return null;
- }
- }
-
- async getProcessFromDB(processId: string) {
- const db = await Database.getInstance();
- const processStore = 'processes';
- const process = await db.getObject(processStore, processId);
- console.log('📦 Process trouvé dans IndexedDB:', {
- store: processStore,
- processId: processId,
- data: process
- });
- return process;
- }
+
private async getExistingMessageProcess(parentId: string, spAddresses: string[]): Promise {
try {