@inherits LayoutComponentBase @implements IDisposable @using System.Security.Claims @inject TrafagSalesExporter.Services.IUiTextService UiText @T("Trafag Finance/Sales Management Cockpit", "Trafag Finance/Sales Management Cockpit") @LanguageLabel Deutsch English Español Italiano हिन्दी @ShortName(authState.User) @Body @code { private bool _drawerOpen = true; private readonly MudTheme _theme = new() { PaletteLight = new PaletteLight { Primary = "#B71C1C", Secondary = "#7F1D1D", AppbarBackground = "#B71C1C" } }; protected override void OnInitialized() { UiText.Changed += HandleLanguageChanged; } private void ToggleDrawer() => _drawerOpen = !_drawerOpen; private void ChangeLanguage(string language) { UiText.SetLanguage(language); } private void HandleLanguageChanged() { InvokeAsync(StateHasChanged); } private string LanguageLabel => UiText.CurrentLanguage.ToUpperInvariant(); private string T(string german, string english) => UiText.Text(german, english); private static string ShortName(ClaimsPrincipal user) { var name = user.Identity?.Name ?? string.Empty; var separator = name.LastIndexOf('\\'); return separator >= 0 && separator < name.Length - 1 ? name[(separator + 1)..] : name; } public void Dispose() { UiText.Changed -= HandleLanguageChanged; } }