Добавлена подсветка воспроизводимой песни
This commit is contained in:
@@ -3,9 +3,11 @@
|
||||
@inherits LayoutComponentBase
|
||||
@inject PwaUpdateService PwaUpdateService
|
||||
@inject IJSRuntime JSRuntime
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject ContextualActionBarService ContextualActionBarService
|
||||
@inject IBrowserViewportService BrowserViewportService
|
||||
@implements IBrowserViewportObserver
|
||||
@implements IDisposable
|
||||
|
||||
<MudThemeProvider Theme="@_theme" IsDarkMode="_isDarkMode" />
|
||||
<MudPopoverProvider />
|
||||
@@ -23,7 +25,7 @@
|
||||
{
|
||||
<MudSpacer />
|
||||
<LoginDisplay />
|
||||
<MudIconButton Icon="@(DarkLightModeButtonIcon)" Color="Color.Inherit" OnClick="@DarkModeToggle" Class="ml-2" />
|
||||
<MudIconButton Icon="@(DarkLightModeButtonIcon)" Color="Color.Inherit" OnClick="@(() => DarkModeToggle())" Class="ml-2" />
|
||||
<MudLink Href="https://git.frigat.duckdns.org/FrigaT/PlaylistShared" Target="_blank" Color="Color.Inherit" Underline="Underline.None" Class="ml-4">
|
||||
<MudIcon Icon="@Icons.Custom.Brands.GitHub" Size="Size.Small" Class="mr-1" /> Git
|
||||
</MudLink>
|
||||
@@ -68,6 +70,22 @@
|
||||
};
|
||||
|
||||
ContextualActionBarService.OnChanged += OnContextualChangedHandler;
|
||||
NavigationManager.LocationChanged += OnLocationChanged;
|
||||
}
|
||||
|
||||
private void OnLocationChanged(object? sender, Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs e)
|
||||
{
|
||||
if (_isMobile)
|
||||
{
|
||||
_drawerOpen = false;
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
NavigationManager.LocationChanged -= OnLocationChanged;
|
||||
ContextualActionBarService.OnChanged -= OnContextualChangedHandler;
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
@@ -77,6 +95,13 @@
|
||||
_dotNetRef = DotNetObjectReference.Create(PwaUpdateService);
|
||||
await JSRuntime.InvokeVoidAsync("registerSWMessageHandler", _dotNetRef);
|
||||
await BrowserViewportService.SubscribeAsync(this, fireImmediately: true);
|
||||
|
||||
var savedTheme = await JSRuntime.InvokeAsync<string?>("localStorage.getItem", "theme");
|
||||
if (savedTheme != null)
|
||||
{
|
||||
_isDarkMode = savedTheme != "light";
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,9 +117,10 @@
|
||||
_drawerOpen = !_drawerOpen;
|
||||
}
|
||||
|
||||
private void DarkModeToggle()
|
||||
private async Task DarkModeToggle()
|
||||
{
|
||||
_isDarkMode = !_isDarkMode;
|
||||
await JSRuntime.InvokeVoidAsync("localStorage.setItem", "theme", _isDarkMode ? "dark" : "light");
|
||||
}
|
||||
|
||||
private readonly PaletteLight _lightPalette = new()
|
||||
@@ -154,8 +180,14 @@
|
||||
|
||||
Task IBrowserViewportObserver.NotifyBrowserViewportChangeAsync(BrowserViewportEventArgs browserViewportEventArgs)
|
||||
{
|
||||
var wasMobile = _isMobile;
|
||||
_isMobile = browserViewportEventArgs.Breakpoint <= Breakpoint.Sm;
|
||||
|
||||
if (!wasMobile && _isMobile)
|
||||
_drawerOpen = false;
|
||||
else if (wasMobile && !_isMobile)
|
||||
_drawerOpen = true;
|
||||
|
||||
return InvokeAsync(StateHasChanged);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user