Files
BotPages/Demo/Pages/WelcomePage.cs
FrigaT 4fa140d91f
Some checks failed
CI / build-test (push) Successful in 29s
Release / pack-and-publish (release) Failing after 1m58s
Добавлена поддержка цветов кнопок телеграмма
2026-02-11 00:40:31 +03:00

56 lines
1.6 KiB
C#

using BotPages.Core;
using BotPages.Core.Abstractions;
using BotPages.Core.Messaging;
using BotPages.Core.Routing;
namespace Demo.Pages;
/// <summary>
/// Стартовая страница демо‑бота.
/// </summary>
[Route("Welcome")]
public sealed class WelcomePage : SingletonPage
{
public override async Task OnEnter(PageContext ctx, CancellationToken ct)
{
await ctx.ClearStorageAsync(ct);
await new MessageBuilder(ctx)
.Text("Добро пожаловать! 🚀")
.Reply(WelcomePageButtons.CreateRequest)
.Reply(WelcomePageButtons.Help)
.Reply(WelcomePageButtons.SendFile)
.SendAsync(ct);
}
public override Task OnText(PageContext ctx, string text, CancellationToken ct)
{
var button = ButtonExtensions.FromButtonLabel<WelcomePageButtons>(text);
switch (button)
{
case WelcomePageButtons.CreateRequest:
return ctx.Navigation.GoToAsync<TitlePage>(ctx, ct);
case WelcomePageButtons.Help:
return new MessageBuilder(ctx).Text("Здесь будет справка.", MessageFormat.Plain).Style(MessageStyle.Success).SendAsync(ct);
case WelcomePageButtons.SendFile:
return ctx.Navigation.GoToAsync<FileSendPage>(ctx, ct);
}
return base.OnText(ctx, text, ct);
}
}
public enum WelcomePageButtons
{
[Button("Создать заявку")]
CreateRequest,
[Button("Помощь")]
Help,
[Button("Отправка файла")]
SendFile,
}