diff --git a/ErsatzTV/Pages/Search.razor b/ErsatzTV/Pages/Search.razor
index 32687babe..891f8ea54 100644
--- a/ErsatzTV/Pages/Search.razor
+++ b/ErsatzTV/Pages/Search.razor
@@ -22,17 +22,9 @@
+ StartIcon="@Icons.Material.Filled.Add">
Add To Collection
-
- Add To Schedule
-
+ AddToCollectionClicked="@AddToCollection"
+ SelectClicked="@(e => SelectClicked(card, e))"
+ IsSelected="@_selectedCards.Contains(card)"
+ IsSelectMode="@_selectedCards.Any()"/>
}
}
@@ -113,24 +108,24 @@
_selectedCards = new System.Collections.Generic.HashSet();
}
- private void ClearSelection()
- {
- _selectedCards.Clear();
- }
+ private void ClearSelection() => _selectedCards.Clear();
- private void SelectClicked(MovieCardViewModel movie, MouseEventArgs e)
+ private void SelectClicked(MediaCardViewModel card, MouseEventArgs e)
{
- if (_selectedCards.Contains(movie))
+ if (_selectedCards.Contains(card))
{
- _selectedCards.Remove(movie);
+ _selectedCards.Remove(card);
}
else
{
- if (e.ShiftKey && _selectedLast is MovieCardViewModel selectedMovie)
+ if (e.ShiftKey && _selectedLast != null)
{
- var sorted = _data.MovieCards.OrderBy(m => m.SortTitle).ToList();
- int start = sorted.IndexOf(selectedMovie);
- int finish = sorted.IndexOf(movie);
+ var sorted = _data.MovieCards.OrderBy(m => m.SortTitle)
+ .Append(_data.ShowCards.OrderBy(s => s.SortTitle))
+ .ToList();
+
+ int start = sorted.IndexOf(_selectedLast);
+ int finish = sorted.IndexOf(card);
if (start > finish)
{
int temp = start;
@@ -144,8 +139,8 @@
}
}
- _selectedLast = movie;
- _selectedCards.Add(movie);
+ _selectedLast = card;
+ _selectedCards.Add(card);
}
}