/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ import { MOUNT_CLASS_TO } from "../config/debug"; import appPeersManager from "../lib/appManagers/appPeersManager"; import rootScope from "../lib/rootScope"; export type PeerTitleOptions = { peerId: number, plainText?: boolean, onlyFirstName?: boolean, dialog?: boolean }; const weakMap: WeakMap = new WeakMap(); MOUNT_CLASS_TO.peerTitleWeakMap = weakMap; rootScope.on('peer_title_edit', (peerId) => { const elements = Array.from(document.querySelectorAll(`.peer-title[data-peer-id="${peerId}"]`)) as HTMLElement[]; elements.forEach(element => { const peerTitle = weakMap.get(element); //console.log('in the summer silence i was doing nothing', peerTitle, peerId); if(peerTitle) { peerTitle.update(); } }); }); export default class PeerTitle { public element: HTMLElement; public peerId: number; public plainText = false; public onlyFirstName = false; public dialog = false; constructor(options: PeerTitleOptions) { this.element = document.createElement('span'); this.element.classList.add('peer-title'); this.update(options); weakMap.set(this.element, this); } public update(options?: PeerTitleOptions) { if(options) { for(let i in options) { // @ts-ignore this.element.dataset[i] = options[i] ? '' + (typeof(options[i]) === 'boolean' ? +options[i] : options[i]) : '0'; // @ts-ignore this[i] = options[i]; } } if(this.peerId !== rootScope.myId || !this.dialog) { this.element.innerHTML = appPeersManager.getPeerTitle(this.peerId, this.plainText, this.onlyFirstName); } else { this.element.innerHTML = this.onlyFirstName ? 'Saved' : 'Saved Messages'; } } }