Files
ersatztv/ErsatzTV/Shared/FragmentLetterAnchor.razor
T
Jason DoveandGitHub 087901d177 adjust block unique constraint (#1634)
* upgrade dependencies

* allow blocks with same name in different groups

* code cleanup
2024-03-05 10:39:06 -06:00

32 lines
842 B
Plaintext

@using LanguageExt.UnsafeValueAccess
@typeparam TCard
@{ var letters = new System.Collections.Generic.HashSet<char>(); }
@foreach (TCard card in Cards.Filter(c => !string.IsNullOrWhiteSpace(c.Title)).OrderBy(c => c.SortTitle))
{
Option<char> maybeLetter = card.SortTitle.ToLowerInvariant().HeadOrNone();
if (maybeLetter.IsSome)
{
char letter = maybeLetter.ValueUnsafe();
if (char.IsDigit(letter) || !char.IsLetter(letter))
{
letter = '#';
}
if (!letters.Contains(letter))
{
letters.Add(letter);
<div id="@($"letter-{letter}")" style="scroll-margin-top: 140px">
@ChildContent(card)
</div>
}
else
{
@ChildContent(card)
}
}
else
{
@ChildContent
}
}