Enhance Telegram bot message handling for login and activation callbacks
- Updated the PnvBotUpdateHandler to edit the original message for login and activation requests instead of sending a new message, improving user experience by removing lingering buttons. - Added null checks for callback messages to ensure robust handling of user interactions. - Enhanced status messages to provide clearer feedback on user actions during the login and activation processes.
This commit is contained in:
@@ -187,10 +187,12 @@ public sealed class PnvBotUpdateHandler(
|
|||||||
: await sender.Send(new RejectTelegramLoginCommand(requestId, fromId), cancellationToken);
|
: await sender.Send(new RejectTelegramLoginCommand(requestId, fromId), cancellationToken);
|
||||||
|
|
||||||
await botClient.AnswerCallbackQuery(callback.Id, result.IsSuccess ? "Готово" : result.Error.Message, cancellationToken: cancellationToken);
|
await botClient.AnswerCallbackQuery(callback.Id, result.IsSuccess ? "Готово" : result.Error.Message, cancellationToken: cancellationToken);
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess && callback.Message is not null)
|
||||||
{
|
{
|
||||||
var text = parts[1] == "approve" ? "✅ Вход подтверждён." : "❌ Вход отклонён.";
|
var statusText = parts[1] == "approve" ? "✅ Вход подтверждён." : "❌ Вход отклонён.";
|
||||||
await botClient.SendMessage(chatId.Value, text, cancellationToken: cancellationToken);
|
var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
|
||||||
|
await botClient.EditMessageText(
|
||||||
|
chatId.Value, callback.Message.Id, text, parseMode: ParseMode.Html, cancellationToken: cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -208,10 +210,14 @@ public sealed class PnvBotUpdateHandler(
|
|||||||
: await sender.Send(new RejectActivationCommand(requestId, Reason: null), cancellationToken);
|
: await sender.Send(new RejectActivationCommand(requestId, Reason: null), cancellationToken);
|
||||||
|
|
||||||
await botClient.AnswerCallbackQuery(callback.Id, result.IsSuccess ? "Готово" : result.Error.Message, cancellationToken: cancellationToken);
|
await botClient.AnswerCallbackQuery(callback.Id, result.IsSuccess ? "Готово" : result.Error.Message, cancellationToken: cancellationToken);
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess && callback.Message is not null)
|
||||||
{
|
{
|
||||||
var text = parts[1] == "approve" ? "✅ Пользователь активирован." : "❌ Запрос отклонён.";
|
// Редактируем исходное сообщение с запросом вместо отдельного — иначе кнопки
|
||||||
await botClient.SendMessage(chatId.Value, text, cancellationToken: cancellationToken);
|
// «Активировать/Отклонить» остаются висеть под уже обработанным запросом.
|
||||||
|
var statusText = parts[1] == "approve" ? "✅ Пользователь активирован." : "❌ Запрос отклонён.";
|
||||||
|
var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
|
||||||
|
await botClient.EditMessageText(
|
||||||
|
chatId.Value, callback.Message.Id, text, parseMode: ParseMode.Html, cancellationToken: cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user