@page "/" @using BirthList.Web.Features.Registries @L["Home.PageTitle"]

@L["Home.Welcome"]

@L["Home.ManagedRegistries"]

@if (MyRegistries.Count == 0) {

@L["Home.NoRegistries"]

} else {
@foreach (var registry in MyRegistries) { }
}

@L["Home.VisitedRegistries"]

@if (VisitedRegistries.Count == 0) {

@L["Home.NoVisitedRegistries"]

} else {
@foreach (var registry in VisitedRegistries) {

@registry.Title

}
}
@if (ShowCreateForm) {
}

@L["Home.LoginPromptPrefix"]@L["Home.LoginPromptLinkText"]@L["Home.LoginPromptSuffix"]

@code { [SupplyParameterFromForm(FormName = "create-registry-form")] protected RegistryCreateModel Model { get; set; } = new(); protected IReadOnlyList MyRegistries { get; private set; } = []; protected IReadOnlyList VisitedRegistries { get; private set; } = []; protected string? ErrorMessage { get; private set; } protected bool ShowCreateForm { get; private set; } [Inject] private RegistryService RegistryService { get; set; } = null!; [Inject] private RegistryUserContext RegistryUserContext { get; set; } = null!; protected override async Task OnInitializedAsync() { await LoadAsync().ConfigureAwait(false); } protected async Task CreateRegistryAsync() { ErrorMessage = null; var userId = await RegistryUserContext.GetUserIdAsync(CancellationToken.None).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(userId)) { ErrorMessage = L["Home.MustBeLoggedIn"]; return; } if (string.IsNullOrWhiteSpace(Model.Title)) { ErrorMessage = L["Home.TitleRequired"]; return; } await RegistryService.CreateRegistryAsync(userId, Model, CancellationToken.None).ConfigureAwait(false); Model = new RegistryCreateModel { RegistryType = Model.RegistryType, ThemeKey = Model.ThemeKey }; ShowCreateForm = false; await LoadAsync().ConfigureAwait(false); } private async Task LoadAsync() { var userId = await RegistryUserContext.GetUserIdAsync(CancellationToken.None).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(userId)) { MyRegistries = []; VisitedRegistries = []; return; } MyRegistries = await RegistryService.GetAdminRegistriesAsync(userId, CancellationToken.None).ConfigureAwait(false); VisitedRegistries = await RegistryService.GetVisitedRegistriesAsync(userId, CancellationToken.None).ConfigureAwait(false); } }