AccessPointsListComponent.razor 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. @using RackPeek.Domain.Resources.Hardware.AccessPoints
  2. @using RackPeek.Domain.Resources.Models
  3. @inject GetAccessPointsUseCase GetAccessPoints
  4. @inject NavigationManager Nav
  5. <PageTitle>Access Points</PageTitle>
  6. <div class="min-h-screen bg-zinc-950 text-zinc-200 font-mono p-6 space-y-6">
  7. <AddResourceComponent TResource="AccessPoint"
  8. Placeholder="AP name"
  9. OnCreated="NavigateToNewResource" />
  10. @if (_AccessPoints is null)
  11. {
  12. <div class="text-zinc-500">loading AccessPoints…</div>
  13. }
  14. else if (_AccessPoints.Count == 0)
  15. {
  16. <div class="text-zinc-500">no AccessPoints found</div>
  17. }
  18. else
  19. {
  20. <div class="space-y-4">
  21. @foreach (var accessPoint in _AccessPoints.OrderBy(s => s.Name))
  22. {
  23. <AccessPointCardComponent AccessPoint="accessPoint" OnDeleted="Callback"/>
  24. }
  25. </div>
  26. }
  27. </div>
  28. @code {
  29. private IReadOnlyList<AccessPoint>? _AccessPoints;
  30. protected override async Task OnInitializedAsync()
  31. {
  32. _AccessPoints = await GetAccessPoints.ExecuteAsync();
  33. }
  34. private Task NavigateToNewResource(string serverName)
  35. {
  36. Nav.NavigateTo($"resources/hardware/{serverName}");
  37. return Task.CompletedTask;
  38. }
  39. private async Task Callback(string obj)
  40. {
  41. _AccessPoints = await GetAccessPoints.ExecuteAsync();
  42. }
  43. }