|
|
|
@ -18,9 +18,7 @@ namespace Seenginx.Components
|
|
|
|
|
[Parameter]
|
|
|
|
|
public List<string> Filters { get; set; } = new List<string>();
|
|
|
|
|
[Parameter]
|
|
|
|
|
public List<int> FilteredOutFiles { get; set; } = new List<int>();
|
|
|
|
|
[Parameter]
|
|
|
|
|
public EventCallback<string> ApplyFilter { get; set; }
|
|
|
|
|
public Dictionary<string, string> FilterFolder { get; set; } = new Dictionary<string, string>();
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
public EventCallback AddFile { get; set; }
|
|
|
|
@ -42,6 +40,7 @@ namespace Seenginx.Components
|
|
|
|
|
public RenderFragment<CFile> DeleteDialog { get; set; }
|
|
|
|
|
|
|
|
|
|
protected string SelectedFilter { get; set; }
|
|
|
|
|
protected string SearchInput { get; set; }
|
|
|
|
|
|
|
|
|
|
protected bool IsAnyFileSelected => SelectedFile != default;
|
|
|
|
|
|
|
|
|
@ -58,26 +57,69 @@ namespace Seenginx.Components
|
|
|
|
|
|
|
|
|
|
protected async Task OnFilterClick(string filter)
|
|
|
|
|
{
|
|
|
|
|
await ApplyFilter.InvokeAsync(filter);
|
|
|
|
|
//for (int index = 0; index < Files.Count; index++)
|
|
|
|
|
// if (FilteredOutFiles.Contains(index))
|
|
|
|
|
// Files[index].Hide();
|
|
|
|
|
// else
|
|
|
|
|
// Files[index].Unhide();
|
|
|
|
|
SelectedFilter = filter;
|
|
|
|
|
SearchFile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected async Task SearchInputChanged(string searchInput)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(searchInput))
|
|
|
|
|
Files.ForEach(f => f.Unhide());
|
|
|
|
|
SearchInput = searchInput;
|
|
|
|
|
SearchFile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SearchFile()
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(SearchInput))
|
|
|
|
|
{
|
|
|
|
|
if (SelectedFilter == "All")
|
|
|
|
|
Files.ForEach(f => f.Unhide());
|
|
|
|
|
else if (SelectedFilter == "Root")
|
|
|
|
|
Files.ForEach(f =>
|
|
|
|
|
{
|
|
|
|
|
if (f.Folder == FilterFolder[SelectedFilter])
|
|
|
|
|
f.Unhide();
|
|
|
|
|
else
|
|
|
|
|
f.Hide();
|
|
|
|
|
});
|
|
|
|
|
else
|
|
|
|
|
Files.ForEach(f =>
|
|
|
|
|
{
|
|
|
|
|
if (f.Folder.Contains(FilterFolder[SelectedFilter]))
|
|
|
|
|
f.Unhide();
|
|
|
|
|
else
|
|
|
|
|
f.Hide();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
Files.ForEach(f =>
|
|
|
|
|
{
|
|
|
|
|
if (f.Name.ToLower().Contains(searchInput.ToLower()))
|
|
|
|
|
f.Unhide();
|
|
|
|
|
else
|
|
|
|
|
f.Hide();
|
|
|
|
|
});
|
|
|
|
|
{
|
|
|
|
|
if (SelectedFilter == "All")
|
|
|
|
|
Files.ForEach(f => { if (f.Name.ToLower().Contains(SearchInput)) f.Unhide(); else f.Hide(); });
|
|
|
|
|
else if (SelectedFilter == "Root")
|
|
|
|
|
Files.ForEach(f =>
|
|
|
|
|
{
|
|
|
|
|
if (f.Folder == FilterFolder[SelectedFilter])
|
|
|
|
|
f.Unhide();
|
|
|
|
|
else
|
|
|
|
|
f.Hide();
|
|
|
|
|
});
|
|
|
|
|
else
|
|
|
|
|
Files.ForEach(f =>
|
|
|
|
|
{
|
|
|
|
|
if (f.Folder.Contains(FilterFolder[SelectedFilter]))
|
|
|
|
|
f.Unhide();
|
|
|
|
|
else
|
|
|
|
|
f.Hide();
|
|
|
|
|
});
|
|
|
|
|
//Files.ForEach(f => f.Unhide());
|
|
|
|
|
//else
|
|
|
|
|
// Files.ForEach(f =>
|
|
|
|
|
// {
|
|
|
|
|
// if (f.Name.ToLower().Contains(searchInput.ToLower()))
|
|
|
|
|
// f.Unhide();
|
|
|
|
|
// else
|
|
|
|
|
// f.Hide();
|
|
|
|
|
// });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected async Task OnFileClick(MouseEventArgs e, CFile file)
|
|
|
|
|