FruitBankHybridApp/FruitBankHybrid.Shared/Layout/MainLayout.razor.cs

37 lines
994 B
C#

using FruitBank.Common.Models;
using Microsoft.AspNetCore.Components;
namespace FruitBankHybrid.Shared.Layout;
public partial class MainLayout : LayoutComponentBase
{
[Inject] public required NavigationManager NavManager{ get; set; }
[Inject] public required LoggedInModel LoggedInModel { get; set; }
private EventCallback RefreshMainLayoutEventCallback => EventCallback.Factory.Create(this, RefreshMainLayout);
private NavMenu _navMenu = null!;
protected override void OnInitialized()
{
var loginUri = NavManager.ToAbsoluteUri("/Login").ToString();
if (!LoggedInModel.IsLoggedIn && NavManager.Uri != loginUri)
{
NavManager.NavigateTo("/Login");
}
}
private void OnLogoutClick()
{
LoggedInModel.LogOut();
RefreshMainLayout();
NavManager.NavigateTo("/Login");
}
public void RefreshMainLayout()
{
_navMenu.RefreshNavMenu();
StateHasChanged();
}
}