1 Commits

Author SHA1 Message Date
fce6e8d013 Добавлено скрытие Reply клавиатуры
All checks were successful
CI / build-test (push) Successful in 35s
Release / pack-and-publish (release) Successful in 34s
2025-12-06 08:36:04 +03:00
2 changed files with 32 additions and 7 deletions

View File

@@ -17,6 +17,7 @@ public sealed class MessageBuilder
private string? _progressTitle = null;
private int? _progressPercent = null;
private string? _progressMessageId = null;
private bool _disableReplyKeyboard;
/// <summary>Создать билдер сообщений.</summary>
public MessageBuilder(PageContext ctx) => _ctx = ctx;
@@ -64,9 +65,20 @@ public sealed class MessageBuilder
return this;
}
/// <summary>
/// Отключение Reply клавиатуры.
/// </summary>
/// <returns></returns>
public MessageBuilder DisableReply()
{
_disableReplyKeyboard = true;
return this;
}
/// <summary>Добавить replyкнопку.</summary>
public MessageBuilder Reply(params ReplyButton[] label)
{
_disableReplyKeyboard = false;
_reply.Add(label.ToList());
return this;
}
@@ -74,6 +86,7 @@ public sealed class MessageBuilder
/// <summary>Добавить строку replyкнопок.</summary>
public MessageBuilder Reply(IEnumerable<ReplyButton> row)
{
_disableReplyKeyboard = false;
_reply.Add(row.ToList());
return this;
}
@@ -81,6 +94,7 @@ public sealed class MessageBuilder
/// <summary>Добавить строку replyкнопок.</summary>
public MessageBuilder Reply(IEnumerable<IEnumerable<ReplyButton>> row)
{
_disableReplyKeyboard = false;
_reply.AddRange(row.Select(t => t.ToList()).ToList());
return this;
}
@@ -113,7 +127,11 @@ public sealed class MessageBuilder
// Текст
if (!string.IsNullOrWhiteSpace(_text))
{
await _ctx.SendTextAsync(_text, _format, _inline, _reply, ct);
List<List<ReplyButton>>? reply = null;
if (_disableReplyKeyboard) reply = new();
else if (_reply.Any()) reply = _reply;
await _ctx.SendTextAsync(_text, _format, _inline, reply, ct);
}
// Файлы

View File

@@ -104,7 +104,9 @@ public sealed class TelegramAdapter : IMessangerAdapterSetup
.ToArray()
);
}
else if (reply is not null && reply.Any())
else if (reply is not null)
{
if (reply.Any())
{
markup = new ReplyKeyboardMarkup(
reply.Select(row => row.Select(b => new KeyboardButton(b.Label)).ToArray()).ToArray()
@@ -113,6 +115,11 @@ public sealed class TelegramAdapter : IMessangerAdapterSetup
ResizeKeyboard = true
};
}
else
{
markup = new ReplyKeyboardRemove();
}
}
var parseMode = ParseMode.None;