AccessPointCardComponent.razor 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. @inject DeleteAccessPointUseCase DeleteUseCase
  2. @using RackPeek.Domain.Resources.Hardware.AccessPoints
  3. @using RackPeek.Domain.Resources.Hardware.Models
  4. @using RackPeek.Web.Components.Modals
  5. <div class="border border-zinc-800 rounded p-4 bg-zinc-900">
  6. <div class="flex justify-between items-center mb-3">
  7. <div class="text-zinc-100 hover:text-emerald-300">
  8. <NavLink href="@($"/resources/hardware/{AccessPoint.Name}")" class="block">
  9. @AccessPoint.Name
  10. </NavLink>
  11. </div>
  12. <div class="flex justify-between items-center mb-3">
  13. @if (!string.IsNullOrWhiteSpace(AccessPoint.Model))
  14. {
  15. <span class="text-xs text-zinc-400">
  16. @AccessPoint.Model
  17. </span>
  18. }
  19. <div class="flex items-center gap-2">
  20. <button
  21. class="text-xs text-red-400 hover:text-red-300 transition"
  22. title="Delete server"
  23. @onclick="ConfirmDelete">
  24. Delete
  25. </button>
  26. </div>
  27. </div>
  28. </div>
  29. <div class="text-sm">
  30. @if (AccessPoint.Speed is not null)
  31. {
  32. <div>
  33. <div class="text-zinc-400 mb-1">Speed</div>
  34. <div class="text-zinc-300">
  35. @AccessPoint.Speed Gbps
  36. </div>
  37. </div>
  38. }
  39. </div>
  40. </div>
  41. <ConfirmModal
  42. IsOpen="_confirmDeleteOpen"
  43. IsOpenChanged="v => _confirmDeleteOpen = v"
  44. Title="Delete server"
  45. ConfirmText="Delete"
  46. ConfirmClass="bg-red-600 hover:bg-red-500"
  47. OnConfirm="DeleteServer">
  48. Are you sure you want to delete <strong>@AccessPoint.Name</strong>?
  49. </ConfirmModal>
  50. @code {
  51. [Parameter] [EditorRequired] public AccessPoint AccessPoint { get; set; } = default!;
  52. }
  53. @code {
  54. private bool _confirmDeleteOpen;
  55. [Parameter]
  56. public EventCallback<string> OnDeleted { get; set; }
  57. void ConfirmDelete()
  58. {
  59. _confirmDeleteOpen = true;
  60. }
  61. async Task DeleteServer()
  62. {
  63. _confirmDeleteOpen = false;
  64. await DeleteUseCase.ExecuteAsync(AccessPoint.Name);
  65. if (OnDeleted.HasDelegate)
  66. await OnDeleted.InvokeAsync(AccessPoint.Name);
  67. }
  68. }