This commit is contained in:
56
Demo/Pages/WelcomePage.cs
Normal file
56
Demo/Pages/WelcomePage.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using BotPages.Core;
|
||||
using BotPages.Core.Abstractions;
|
||||
using BotPages.Core.Messaging;
|
||||
|
||||
namespace Demo.Pages;
|
||||
|
||||
/// <summary>
|
||||
/// Стартовая страница демо‑бота.
|
||||
/// </summary>
|
||||
public sealed class WelcomePage : SingletonPage
|
||||
{
|
||||
public override Task OnEnter(PageContext ctx, CancellationToken ct)
|
||||
=> 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).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,
|
||||
}
|
||||
Reference in New Issue
Block a user