ServiceDetailsPage.razor 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. @page "/resources/services/{ServiceName}"
  2. @using RackPeek.Domain.Persistence
  3. @inject IResourceCollection Repo
  4. @inject NavigationManager NavigationManager
  5. <PageTitle>Service Details</PageTitle>
  6. <ResourceBreadCrumbComponent
  7. ResourceType="ResourceType.Service"
  8. ResourceName="@ServiceName"/>
  9. <div class="min-h-screen bg-zinc-950 text-zinc-200 font-mono p-6">
  10. @if (_service is null && !_loading)
  11. {
  12. <div class="text-zinc-500">Service not found</div>
  13. }
  14. else if (_loading)
  15. {
  16. <div class="text-zinc-500">loading service…</div>
  17. }
  18. else
  19. {
  20. @if (_service != null)
  21. {
  22. <h1 class="text-lg text-zinc-100 mb-6">
  23. @_service.Name (@_service.Kind)
  24. </h1>
  25. <ServiceCardComponent Service="_service" OnDeleted="OnDeleted"/>
  26. }
  27. }
  28. </div>
  29. @code {
  30. [Parameter] public string ServiceName { get; set; } = string.Empty;
  31. private Service? _service;
  32. private bool _loading = true;
  33. protected override async Task OnParametersSetAsync()
  34. {
  35. _loading = true;
  36. _service = await Repo.GetByNameAsync<Service>(ServiceName);
  37. _loading = false;
  38. }
  39. private void OnDeleted(string obj)
  40. {
  41. NavigationManager.NavigateTo("/services/list");
  42. }
  43. }