AdminPanel/Netina.AdminPanel.PWA/Layout/MainLayout.razor

129 lines
4.6 KiB
Plaintext

@using Netina.AdminPanel.PWA.Pages
@using Radzen.Blazor
@using Netina.AdminPanel.PWA.Models
@inherits LayoutComponentBase
@inject IPWAUpdaterService PwaUpdaterService
@inject NavigationManager NavigationManager
@inject IUserUtility UserUtility
@inject IJSRuntime Js
<style>
body .pwa-updater[b-pwa-updater] {
--pwa-updater-bar-height: 40px;
--pwa-updater-font-size: 16px;
--pwa-updater-bar-color: rgba(253, 216, 53, 1);
--pwa-updater-bar-backcolor: #444;
padding-top: 35px;
padding-right: 10px;
padding-bottom: 35px;
padding-left: 10px;
}
body .pwa-updater-updatenow-button {
border: dashed 2px rgba(253, 216, 53, 1) !important;
font-family: iranyekan !important;
font-weight: 800 !important;
}
body .pwa-updater-close-button {
color: #fff !important;
}
</style>
<AuthorizeView>
<Authorized>
<MudRTLProvider RightToLeft="true">
<MudThemeProvider IsDarkMode="@MainTheme.IsDarkMode" Theme="@MainTheme.MyCustomTheme" />
<MudDialogProvider />
<MudSnackbarProvider />
<MudLayout>
<MudAppBar class="py-2" Color="Color.Transparent" Fixed="false" Elevation="2">
<MudHidden Breakpoint="Breakpoint.MdAndUp">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" OnClick="@ToggleDrawer" Edge="Edge.Start" />
</MudHidden>
<RadzenGravatar class="w-14 h-14" Email="@_user?.Email" />
<MudStack class="mr-2" Spacing="0">
<MudText Color="Color.Inherit" Typo="Typo.body1"><b>@_user?.FullName</b></MudText>
<MudText Color="Color.Inherit" Typo="Typo.caption">@_user?.PhoneNumber</MudText>
</MudStack>
<MudSpacer />
<MudToggleIconButton @bind-Toggled="@MainTheme.IsDarkMode"
Icon="@Icons.Material.Outlined.DarkMode" Color="@Color.Default" Title="تاریک"
ToggledIcon="@Icons.Material.Filled.LightMode" ToggledColor="@Color.Default" ToggledTitle="روشن" />
<MudIconButton Size="Size.Medium" Color="Color.Error" OnClick="LogoutAsync" Icon="@Icons.Material.Outlined.ExitToApp" />
</MudAppBar>
<MudDrawer @bind-Open="@open" Breakpoint="Breakpoint.MdAndUp" Elevation="1" Variant="@DrawerVariant.Responsive">
<SideBarUi />
</MudDrawer>
<MudGrid Spacing="0">
<MudItem md="3" lg="2">
<MudHidden Breakpoint="Breakpoint.SmAndDown">
<SideBarUi />
</MudHidden>
</MudItem>
<MudItem sm="12" md="9" lg="10">
<div>
@Body
</div>
</MudItem>
</MudGrid>
</MudLayout>
<div dir="ltr">
<PWAUpdater Align="PWAUpdater.Aligns.Buttom" Text="@_updateText" ButtonCaption="اپدیت کنید" />
</div>
</MudRTLProvider>
</Authorized>
<NotAuthorized>
<MudRTLProvider RightToLeft="true">
<MudThemeProvider Theme="@MainTheme.MyCustomTheme" />
<MudDialogProvider />
<MudSnackbarProvider />
<MudLayout>
<div>
<LoginPage />
<div dir="ltr">
<PWAUpdater Text="@_updateText" ButtonCaption="اپدیت کنید" />
</div>
</div>
</MudLayout>
</MudRTLProvider>
</NotAuthorized>
</AuthorizeView>
@code
{
private string _updateText = "! نسخه جدید پنل ادمین رسید";
private ApplicationUserSDto? _user;
bool open = false;
void ToggleDrawer() => open = !open;
private async Task LogoutAsync()
{
await UserUtility.LogoutAsync();
NavigationManager.NavigateTo("login", true, true);
}
protected override void OnInitialized()
{
string? version = typeof(Program)?.Assembly.GetName()?.Version?.ToString();
if (version != null)
_updateText = $"نسخه جدید پنل ادمین رسید - {version}";
base.OnInitialized();
}
protected override async Task OnInitializedAsync()
{
_user = await UserUtility.GetUserAsync();
await base.OnInitializedAsync();
}
}