Creata pagina step della commessa

This commit is contained in:
2025-08-29 18:20:07 +02:00
parent 9957229e70
commit 588dbe308a
20 changed files with 732 additions and 52 deletions

View File

@@ -6,11 +6,14 @@
@using salesbook.Shared.Components.SingleElements.BottomSheet
@using salesbook.Shared.Components.Layout.Spinner
@using salesbook.Shared.Components.SingleElements
@using salesbook.Shared.Core.Dto.PageState
@using salesbook.Shared.Core.Dto.Users
@using salesbook.Shared.Core.Entity
@using salesbook.Shared.Core.Messages.Contact
@inject IManageDataService ManageData
@inject NewContactService NewContact
@inject FilterUserDTO Filter
@inject UserListState UserState
<HeaderLayout Title="Contatti"/>
@@ -70,22 +73,46 @@
protected override void OnInitialized()
{
NewContact.OnContactCreated += async response => await OnUserCreated(response);
Console.WriteLine($"Filter HashCode: {Filter.GetHashCode()} - IsInitialized: {Filter.IsInitialized}");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await LoadData();
IsLoading = true;
StateHasChanged();
if (UserState.FilteredGroupedUserList == null && UserState.GroupedUserList == null)
{
await LoadData();
SetDataSession();
}
else
{
LoadFromSession();
}
FilterUsers();
IsLoading = false;
StateHasChanged();
}
}
private void LoadFromSession()
{
GroupedUserList = UserState.GroupedUserList!;
FilteredGroupedUserList = UserState.FilteredGroupedUserList!;
}
private void SetDataSession()
{
UserState.GroupedUserList = GroupedUserList;
UserState.FilteredGroupedUserList = FilteredGroupedUserList;
}
private async Task LoadData()
{
IsLoading = true;
StateHasChanged();
if (!Filter.IsInitialized)
{
var loggedUser = (await ManageData.GetTable<StbUser>(x => x.UserName.Equals(UserSession.User.Username))).Last();
@@ -126,19 +153,6 @@
HeaderLetter = currentLetter
});
}
FilterUsers();
IsLoading = false;
StateHasChanged();
}
private class UserDisplayItem
{
public required ContactDTO User { get; set; }
public bool ShowHeader { get; set; }
public string? HeaderLetter { get; set; }
}
private void FilterUsers() => FilterUsers(false);