Files
Otchislator/src/Otchinslator/Components/Layout/NavMenu.razor

63 lines
2.1 KiB
Plaintext

@inject NavigationManager Navigation
@code {
private int _lvl = 0;
private Dictionary<string, string> _links = new()
{
{ "Анкета", "/questionnaire" },
{ "Заявление", "/statement" },
{ "Отправка", "/result" },
{ "Свобода", "/otchislenie/congratulation" }
};
// TODO: Упростить это
protected override void OnInitialized()
{
base.OnInitialized();
switch (Navigation.ToBaseRelativePath(Navigation.Uri))
{
case "questionnaire":
_lvl = 1;
break;
case "statement":
_lvl = 2;
break;
case "result":
_lvl = 3;
break;
case "otchislenie/congratulation":
_lvl = 4;
break;
}
}
}
<footer class="card fixed bottom-0 w-96 sm:w-[32rem] h-20 bg-base-200 rounded-badge p-4 mb-3">
<div class="flex justify-center items-center">
<ul class="steps justify-center center w-full text-sm">
<a href="chooseinstitut" class="step step-primary text-gray-500">Выбор</a>
@foreach (int i in Enumerable.Range(1, 4))
{
if (_lvl == 4 && i == 4)
{
<a href="/otchislenie/congratulation" class="step step-primary select-none " data-content="♿">Свобода</a>
continue;
}
if (_lvl == i)
{
<i class="step select-none step-primary">@_links.ElementAt(i - 1).Key</i>
}
else if (_lvl > i)
{
<a href="@_links.ElementAt(i - 1).Value" class="step step-primary select-none text-gray-500">@_links.ElementAt(i - 1).Key</a>
}
else
{
<i class="step select-none"> @_links.ElementAt(i - 1).Key</i>
}
}
</ul>
</div>
</footer>