Eduard Kuzmenko
4 years ago
15 changed files with 319 additions and 101 deletions
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
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<HTMLElement, PeerTitle> = new WeakMap(); |
||||
|
||||
MOUNT_CLASS_TO && (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'; |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue