using Microsoft.JSInterop; using System.Reflection; namespace Duempelkas.App.Components.Layout; public partial class MainLayout { private int fontScale = 100; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { var value = await JS.InvokeAsync("duempelkasReading.get"); fontScale = value is 125 or 150 or 200 ? value : 100; StateHasChanged(); } } private async Task ApplyTextScale() => await JS.InvokeVoidAsync("duempelkasReading.set", fontScale); #region Fields private bool showAboutDialog; #endregion #region Properties private static string AppVersion { get { var entryAssembly = Assembly.GetEntryAssembly(); var infoVersion = entryAssembly? .GetCustomAttribute()? .InformationalVersion; if (!string.IsNullOrWhiteSpace(infoVersion)) { return infoVersion.Split('+')[0]; } return entryAssembly?.GetName().Version?.ToString(2) ?? "1.0"; } } #endregion #region Event Handlers private void OpenAboutDialog() => showAboutDialog = true; private void CloseAboutDialog() => showAboutDialog = false; #endregion }