@using BLAIzor.Models @using BLAIzor.Services @inject ScopedContentService _scopedContentService; @inject NavigationManager _navigationManager; @inject ContentEditorService _contentEditorService @inject IHttpContextAccessor HttpContextAccessor @inject IJSRuntime JS @inject ISimpleLogger _logger @code { [Parameter] public int SiteId { get; set; } [Parameter] public List Menu { get; set; } [Parameter] public string? BrandName { get; set; } = "BLAIzor"; //public string[] MenuList; public string videoUrl = ""; public string SelectedLanguage; private int RenderCounter = 0; //public static event Action? OnMenuClicked; [Parameter] public Action? OnMenuClicked { get; set; } public List Languages = new List { "Hungarian", "English", "German" }; public async Task MenuClickedAsync(string menuName) { OnMenuClicked?.Invoke(menuName); await JS.InvokeVoidAsync("collapseNavbar"); } public void HomeClick() { _navigationManager.Refresh(true); } protected override async Task OnInitializedAsync() { } protected override async Task OnParametersSetAsync() { if (Menu != null) { // } var lang = await JS.InvokeAsync("getUserLanguage"); SiteInfo site = await _contentEditorService.GetSiteInfoByIdAsync(SiteId); if (site.DefaultLanguage != null) { await _logger.InfoAsync($"NavMenu component: Setting default language to {site.DefaultLanguage} for site {site.Id}"); _scopedContentService.WebsiteDefaultLanguage = site.DefaultLanguage; _scopedContentService.SelectedLanguage = site.DefaultLanguage; SelectedLanguage = site.DefaultLanguage; } else { // Normalize and match to one of your supported languages if (lang.StartsWith("hu", StringComparison.OrdinalIgnoreCase)) SelectedLanguage = "Hungarian"; else if (lang.StartsWith("de", StringComparison.OrdinalIgnoreCase)) SelectedLanguage = "German"; else SelectedLanguage = "English"; await _logger.InfoAsync($"Setting default language to {SelectedLanguage} based on user language {lang}"); _scopedContentService.SelectedLanguage = SelectedLanguage; } await base.OnParametersSetAsync(); } public void OnLanguageSelected(ChangeEventArgs e) { SelectedLanguage = e.Value?.ToString(); if (!string.IsNullOrEmpty(SelectedLanguage)) { Console.WriteLine($"Language selected: {SelectedLanguage}"); _scopedContentService.SelectedLanguage = SelectedLanguage; } } }