2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-06 01:16:12 +00:00

Initial request peer button implementation.

This commit is contained in:
John Preston
2023-01-12 16:27:50 +04:00
parent 90cb61676a
commit 809610817e
9 changed files with 552 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "boxes/share_box.h"
#include "boxes/passcode_box.h"
#include "boxes/url_auth_box.h"
#include "boxes/peers/choose_peer_box.h"
#include "lang/lang_keys.h"
#include "core/core_cloud_password.h"
#include "core/click_handler_types.h"
@@ -404,8 +405,26 @@ void ActivateBotCommand(ClickHandlerContext context, int row, int column) {
disabled);
} break;
case ButtonType::RequestPeer: { // #TODO request_peer
case ButtonType::RequestPeer: {
HideSingleUseKeyboard(controller, item);
auto query = RequestPeerQuery();
Assert(button->data.size() == sizeof(query));
memcpy(&query, button->data.data(), sizeof(query));
const auto peer = item->history()->peer;
const auto itemId = item->id;
const auto id = int32(button->buttonId);
const auto chosen = [=](not_null<PeerData*> result) {
peer->session().api().request(MTPmessages_SendBotRequestedPeer(
peer->input,
MTP_int(itemId),
MTP_int(id),
result->input
)).done([=](const MTPUpdates &result) {
peer->session().api().applyUpdates(result);
}).send();
};
ShowChoosePeerBox(controller, chosen, query);
} break;
case ButtonType::SwitchInlineSame: