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 string? _progressTitle = null;
private int? _progressPercent = null; private int? _progressPercent = null;
private string? _progressMessageId = null; private string? _progressMessageId = null;
private bool _disableReplyKeyboard;
/// <summary>Создать билдер сообщений.</summary> /// <summary>Создать билдер сообщений.</summary>
public MessageBuilder(PageContext ctx) => _ctx = ctx; public MessageBuilder(PageContext ctx) => _ctx = ctx;
@@ -64,9 +65,20 @@ public sealed class MessageBuilder
return this; return this;
} }
/// <summary>
/// Отключение Reply клавиатуры.
/// </summary>
/// <returns></returns>
public MessageBuilder DisableReply()
{
_disableReplyKeyboard = true;
return this;
}
/// <summary>Добавить replyкнопку.</summary> /// <summary>Добавить replyкнопку.</summary>
public MessageBuilder Reply(params ReplyButton[] label) public MessageBuilder Reply(params ReplyButton[] label)
{ {
_disableReplyKeyboard = false;
_reply.Add(label.ToList()); _reply.Add(label.ToList());
return this; return this;
} }
@@ -74,6 +86,7 @@ public sealed class MessageBuilder
/// <summary>Добавить строку replyкнопок.</summary> /// <summary>Добавить строку replyкнопок.</summary>
public MessageBuilder Reply(IEnumerable<ReplyButton> row) public MessageBuilder Reply(IEnumerable<ReplyButton> row)
{ {
_disableReplyKeyboard = false;
_reply.Add(row.ToList()); _reply.Add(row.ToList());
return this; return this;
} }
@@ -81,6 +94,7 @@ public sealed class MessageBuilder
/// <summary>Добавить строку replyкнопок.</summary> /// <summary>Добавить строку replyкнопок.</summary>
public MessageBuilder Reply(IEnumerable<IEnumerable<ReplyButton>> row) public MessageBuilder Reply(IEnumerable<IEnumerable<ReplyButton>> row)
{ {
_disableReplyKeyboard = false;
_reply.AddRange(row.Select(t => t.ToList()).ToList()); _reply.AddRange(row.Select(t => t.ToList()).ToList());
return this; return this;
} }
@@ -113,7 +127,11 @@ public sealed class MessageBuilder
// Текст // Текст
if (!string.IsNullOrWhiteSpace(_text)) 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() .ToArray()
); );
} }
else if (reply is not null && reply.Any()) else if (reply is not null)
{
if (reply.Any())
{ {
markup = new ReplyKeyboardMarkup( markup = new ReplyKeyboardMarkup(
reply.Select(row => row.Select(b => new KeyboardButton(b.Label)).ToArray()).ToArray() reply.Select(row => row.Select(b => new KeyboardButton(b.Label)).ToArray()).ToArray()
@@ -113,6 +115,11 @@ public sealed class TelegramAdapter : IMessangerAdapterSetup
ResizeKeyboard = true ResizeKeyboard = true
}; };
} }
else
{
markup = new ReplyKeyboardRemove();
}
}
var parseMode = ParseMode.None; var parseMode = ParseMode.None;