@implements IDisposable @inject NavigationManager NavigationManager @inject IAuthService AuthService @inject IApplicationConfig AppConfig @inject IDataService DataService
@code { private bool collapseNavMenu = true; private RemotelyUser? _user; private Organization? _organization; private string? _currentUrl; public void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; } protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); _currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri); NavigationManager.LocationChanged += OnLocationChanged; var userResult = await AuthService.GetUser(); if (!userResult.IsSuccess) { return; } _user = userResult.Value; if (!string.IsNullOrWhiteSpace(_user?.OrganizationID)) { var orgResult = await DataService.GetOrganizationById(_user.OrganizationID); if (orgResult.IsSuccess) { _organization = orgResult.Value; } } else { var orgResult = await DataService.GetDefaultOrganization(); if (orgResult.IsSuccess) { _organization = orgResult.Value; } } } private string NavMenuCssClass => collapseNavMenu ? "collapse" : ""; private void ToggleNavMenu() { collapseNavMenu = !collapseNavMenu; } private void OnLocationChanged(object? sender, LocationChangedEventArgs e) { _currentUrl = NavigationManager.ToBaseRelativePath(e.Location); InvokeAsync(StateHasChanged); } }