Telegram Web K with changes to work inside I2P https://web.telegram.i2p/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

54 lines
1.7 KiB

/*
* 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 callbackify from "../../helpers/callbackify";
import AutocompletePeerHelper from "./autocompletePeerHelper";
import { processPeerFullForCommands } from "./commandsHelper";
import { AppManagers } from "../../lib/appManagers/managers";
const CLASS_NAME = 'bot-commands';
export default class ChatBotCommands extends AutocompletePeerHelper {
private userId: UserId;
constructor(
appendTo: HTMLElement,
chatInput: ChatInput,
private managers: AppManagers
) {
super(appendTo, undefined, CLASS_NAME, (target) => {
const innerHTML = target.querySelector(`.${AutocompletePeerHelper.BASE_CLASS_LIST_ELEMENT}-name`).innerHTML;
return chatInput.getReadyToSend(() => {
chatInput.messageInput.innerHTML = innerHTML;
chatInput.sendMessage(true);
this.toggle(true);
});
});
}
public setUserId(userId: UserId, middleware: () => boolean) {
if(this.userId === userId && this.list?.childElementCount) {
this.toggle(false);
return;
}
this.userId = userId;
return callbackify(this.managers.appProfileManager.getProfile(userId), (full) => {
if(!middleware()) return;
const filtered = processPeerFullForCommands(userId.toPeerId(false), full);
const PADDING_TOP = 8;
// const PADDING_BOTTOM = 8;
const PADDING_BOTTOM = 24;
const height = filtered.length * 50 + PADDING_TOP + PADDING_BOTTOM;
this.container.style.setProperty('--height', height + 'px');
this.render(filtered);
// this.container.style.top =
});
}
}