@using CommunityToolkit.Mvvm.Messaging @using salesbook.Shared.Core.Dto @using salesbook.Shared.Core.Dto.Activity @using salesbook.Shared.Core.Entity @using salesbook.Shared.Core.Messages.Activity.Copy @using salesbook.Shared.Core.Messages.Activity.New @using salesbook.Shared.Core.Messages.Contact @inject IDialogService Dialog @inject IMessenger Messenger @inject CopyActivityService CopyActivityService
@code { private bool IsVisible { get; set; } = true; private bool PlusVisible { get; set; } = true; protected override Task OnInitializedAsync() { CopyActivityService.OnCopyActivity += async dto => await CreateActivity(dto); NavigationManager.LocationChanged += (_, args) => { var location = args.Location.Remove(0, NavigationManager.BaseUri.Length); var newIsVisible = new List { "Calendar", "Users", "Notifications", "Commessa" } .Contains(location); var newPlusVisible = new List { "Calendar", "Users", "Commessa" } .Contains(location); if (IsVisible == newIsVisible && PlusVisible == newPlusVisible) return; IsVisible = newIsVisible; PlusVisible = newPlusVisible; StateHasChanged(); }; return Task.CompletedTask; } private Task CreateActivity() => CreateActivity(null); private async Task CreateActivity(ActivityDTO? activity) { var result = await ModalHelpers.OpenActivityForm(Dialog, activity, null); if (result is { Canceled: false, Data: not null } && result.Data.GetType() == typeof(StbActivity)) { Messenger.Send(new NewActivityMessage(((StbActivity)result.Data).ActivityId)); } } private async Task CreateUser() { var result = await ModalHelpers.OpenUserForm(Dialog, null); if (result is { Canceled: false, Data: not null } && result.Data.GetType() == typeof(CRMCreateContactResponseDTO)) { Messenger.Send(new NewContactMessage((CRMCreateContactResponseDTO)result.Data)); } } }