129 lines
4.7 KiB
Plaintext
129 lines
4.7 KiB
Plaintext
@using BLAIzor.Models
|
|
@using BLAIzor.Services
|
|
@inject ScopedContentService _scopedContentService;
|
|
@inject NavigationManager _navigationManager;
|
|
@inject ContentEditorService _contentEditorService
|
|
@inject IHttpContextAccessor HttpContextAccessor
|
|
@inject IJSRuntime JS
|
|
|
|
|
|
<div class="container-fluid footer" style="position: relative; z-index: 10000; margin-top: 100px;">
|
|
<div class="container">
|
|
<footer class="footer-inner pt-5">
|
|
<div class="row">
|
|
@{
|
|
|
|
|
|
var brandFileName = _scopedContentService.SelectedDocument;
|
|
var brandName = _scopedContentService.SelectedBrandName;
|
|
|
|
if (MenuList != null)
|
|
{
|
|
int columnCount = 3;
|
|
int itemsPerColumn = (int)Math.Ceiling(MenuList.Length / (double)columnCount);
|
|
var columns = new List<List<string>>();
|
|
|
|
for (int i = 0; i < columnCount; i++)
|
|
{
|
|
columns.Add(MenuList.Skip(i * itemsPerColumn).Take(itemsPerColumn).ToList());
|
|
}
|
|
|
|
@foreach (var column in columns)
|
|
{
|
|
<div class="col-6 col-md-2 mb-3">
|
|
<h5>@brandName</h5>
|
|
<ul class="nav flex-column">
|
|
@foreach (var item in column)
|
|
{
|
|
<li class="nav-item mb-2" style="text-align: start;"><a class="nav-link p-0 text-body-secondary" @onclick="()=>MenuClickedAsync(item)">@item</a></li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
<div class="col-md-5 offset-md-1 mb-3">
|
|
<form>
|
|
<h5>Subscribe to our newsletter</h5> <p>Monthly digest of what's new and exciting from us.</p>
|
|
<div class="d-flex flex-column flex-sm-row w-100 gap-2">
|
|
<label for="newsletter1" class="visually-hidden">Email address</label>
|
|
<input id="newsletter1" type="email" class="form-control" placeholder="Email address">
|
|
<button class="btn btn-primary" type="button">Subscribe</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex flex-column flex-sm-row justify-content-between pt-4 mt-4 border-top">
|
|
|
|
<p>© 2025 <NavLink @onclick="HomeClick">@brandName</NavLink>, Inc. All rights reserved.</p>
|
|
<ul class="list-unstyled d-flex">
|
|
<li class="ms-3"><a href="#" aria-label="Instagram"><i class="fa-brands fa-square-instagram"></i></a></li>
|
|
<li class="ms-3"><a href="#" aria-label="Facebook"><i class="fa-brands fa-square-facebook"></i></a></li>
|
|
</ul>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@code {
|
|
public int SiteId;
|
|
[Parameter]
|
|
public string? MenuString { get; set; }
|
|
public string[] MenuList;
|
|
public string videoUrl = "";
|
|
public string SelectedLanguage;
|
|
private int RenderCounter = 0;
|
|
|
|
[Parameter] public Action<string>? OnMenuClicked { get; set; }
|
|
|
|
public async Task MenuClickedAsync(string menuName)
|
|
{
|
|
OnMenuClicked?.Invoke(menuName);
|
|
await JS.InvokeVoidAsync("collapseNavbar");
|
|
}
|
|
public void HomeClick()
|
|
{
|
|
_navigationManager.Refresh(true);
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
var lang = await JS.InvokeAsync<string>("getUserLanguage");
|
|
|
|
// 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";
|
|
|
|
_scopedContentService.SelectedLanguage = SelectedLanguage;
|
|
}
|
|
|
|
protected override async Task OnParametersSetAsync()
|
|
{
|
|
if (!string.IsNullOrEmpty(MenuString))
|
|
{
|
|
MenuList = MenuString.Split(",");
|
|
}
|
|
|
|
await base.OnParametersSetAsync();
|
|
}
|
|
|
|
public void OnLanguageSelected(ChangeEventArgs e)
|
|
{
|
|
SelectedLanguage = e.Value?.ToString();
|
|
|
|
if (!string.IsNullOrEmpty(SelectedLanguage))
|
|
{
|
|
Console.WriteLine($"Language selected: {SelectedLanguage}");
|
|
_scopedContentService.SelectedLanguage = SelectedLanguage;
|
|
}
|
|
}
|
|
|
|
}
|