DesktopCardComponent.razor 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. @using RackPeek.Domain.Resources.Hardware.Models
  2. <div class="border border-zinc-800 rounded p-4 bg-zinc-900">
  3. <div class="flex justify-between items-center mb-3">
  4. <div class="text-zinc-100">
  5. @Desktop.Name
  6. </div>
  7. @if (!string.IsNullOrWhiteSpace(Desktop.Model))
  8. {
  9. <span class="text-xs text-zinc-400">
  10. @Desktop.Model
  11. </span>
  12. }
  13. </div>
  14. <div class="grid grid-cols-1 md:grid-cols-2 gap-3 text-sm">
  15. @if (Desktop.Cpus?.Any() == true)
  16. {
  17. <div>
  18. <div class="text-zinc-400 mb-1">CPU</div>
  19. @foreach (var cpu in Desktop.Cpus)
  20. {
  21. <div class="text-zinc-300">
  22. @cpu.Model — @cpu.Cores cores / @cpu.Threads threads
  23. </div>
  24. }
  25. </div>
  26. }
  27. @if (Desktop.Ram is not null)
  28. {
  29. <div>
  30. <div class="text-zinc-400 mb-1">RAM</div>
  31. <div class="text-zinc-300">
  32. @Desktop.Ram.Size GB @Desktop.Ram.Mts MT/s
  33. </div>
  34. </div>
  35. }
  36. @if (Desktop.Drives?.Any() == true)
  37. {
  38. <div>
  39. <div class="text-zinc-400 mb-1">Drives</div>
  40. @foreach (var drive in Desktop.Drives)
  41. {
  42. <div class="text-zinc-300">
  43. @drive.Type — @drive.Size GB
  44. </div>
  45. }
  46. </div>
  47. }
  48. @if (Desktop.Nics?.Any() == true)
  49. {
  50. <div>
  51. <div class="text-zinc-400 mb-1">NICs</div>
  52. @foreach (var nic in Desktop.Nics)
  53. {
  54. <div class="text-zinc-300">
  55. @nic.Type — @nic.Speed Gbps (@nic.Ports ports)
  56. </div>
  57. }
  58. </div>
  59. }
  60. @if (Desktop.Gpus?.Any() == true)
  61. {
  62. <div>
  63. <div class="text-zinc-400 mb-1">GPU</div>
  64. @foreach (var gpu in Desktop.Gpus)
  65. {
  66. <div class="text-zinc-300">
  67. @gpu.Model — @gpu.Vram GB VRAM
  68. </div>
  69. }
  70. </div>
  71. }
  72. </div>
  73. </div>
  74. @code {
  75. [Parameter][EditorRequired]
  76. public Desktop Desktop { get; set; } = default!;
  77. }