/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ import type ChatInput from "./input"; import type { MessageEntity } from "../../layer"; import AutocompleteHelperController from "./autocompleteHelperController"; import AutocompletePeerHelper from "./autocompletePeerHelper"; import appUsersManager from "../../lib/appManagers/appUsersManager"; export default class MentionsHelper extends AutocompletePeerHelper { constructor(appendTo: HTMLElement, controller: AutocompleteHelperController, private chatInput: ChatInput) { super(appendTo, controller, 'mentions-helper', (target) => { const user = appUsersManager.getUser(+(target as HTMLElement).dataset.peerId); let str = '', entity: MessageEntity; if(user.username) { str = '@' + user.username; } else { str = user.first_name || user.last_name; entity = { _: 'messageEntityMentionName', length: str.length, offset: 0, user_id: user.id }; } str += ' '; chatInput.insertAtCaret(str, entity); } ); } }