ServiceDetailsPage.razor 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. <h1 class="text-lg text-zinc-100 mb-6">
  21. @_service.Name (@_service.Kind)
  22. </h1>
  23. <ServiceCardComponent Service="_service" OnDeleted="OnDeleted"/>
  24. }
  25. </div>
  26. @code {
  27. [Parameter] public string ServiceName { get; set; } = string.Empty;
  28. private Service? _service;
  29. private bool _loading = true;
  30. protected override async Task OnParametersSetAsync()
  31. {
  32. _loading = true;
  33. _service = await Repo.GetByNameAsync<Service>(ServiceName);
  34. _loading = false;
  35. }
  36. private void OnDeleted(string obj)
  37. {
  38. NavigationManager.NavigateTo("/services/list");
  39. }
  40. }