This commit is contained in:
33
Demo/Pages/DetailsPage.cs
Normal file
33
Demo/Pages/DetailsPage.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using BotPages.Core;
|
||||
using BotPages.Core.Messaging;
|
||||
|
||||
namespace Demo.Pages;
|
||||
|
||||
/// <summary>
|
||||
/// Страница ввода деталей заявки.
|
||||
/// </summary>
|
||||
public sealed class DetailsPage : StatefullPage<DetailsArgs>
|
||||
{
|
||||
public override Task OnEnter(PageContext ctx, DetailsArgs args, CancellationToken ct)
|
||||
=> new MessageBuilder(ctx)
|
||||
.Text($"Заголовок: {args.Title}\nДобавьте детали или нажмите Далее.")
|
||||
.Inline(new InlineButton("Далее", "next"), new InlineButton("Назад", "back"))
|
||||
.Reply("Отмена")
|
||||
.SendAsync(ct);
|
||||
|
||||
public override Task OnButton(PageContext ctx, string payload, CancellationToken ct)
|
||||
=> payload switch
|
||||
{
|
||||
"next" => ctx.Navigation.GoToAsync<FilesPage>(ctx, ct),
|
||||
"back" => ctx.Navigation.GoToAsync<TitlePage>(ctx, ct),
|
||||
_ => Task.CompletedTask
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Аргументы для страницы DetailsPage.
|
||||
/// </summary>
|
||||
public sealed class DetailsArgs
|
||||
{
|
||||
public string Title { get; set; } = "";
|
||||
}
|
||||
Reference in New Issue
Block a user