From 999207bd33f4cc037c39db5f2d2d12fe0ab12cc7 Mon Sep 17 00:00:00 2001
From: RachelElysia <71795832+RachelElysia@users.noreply.github.com>
Date: Mon, 16 Jun 2025 11:23:19 -0400
Subject: [PATCH] Fleet UI: Improved error and loading state for self-service
page (#30042)
---
.../29822-self-service-loading-error-state | 1 +
.../Software/SelfService/SelfService.tsx | 83 +++++++------------
2 files changed, 33 insertions(+), 51 deletions(-)
create mode 100644 changes/29822-self-service-loading-error-state
diff --git a/changes/29822-self-service-loading-error-state b/changes/29822-self-service-loading-error-state
new file mode 100644
index 0000000000..9fcc6a7b0b
--- /dev/null
+++ b/changes/29822-self-service-loading-error-state
@@ -0,0 +1 @@
+- Fleet UI: Improved error and loading state for self-service page
diff --git a/frontend/pages/hosts/details/cards/Software/SelfService/SelfService.tsx b/frontend/pages/hosts/details/cards/Software/SelfService/SelfService.tsx
index 6b3c93b006..88869cf0f7 100644
--- a/frontend/pages/hosts/details/cards/Software/SelfService/SelfService.tsx
+++ b/frontend/pages/hosts/details/cards/Software/SelfService/SelfService.tsx
@@ -357,51 +357,15 @@ const SoftwareSelfService = ({
return ; // Only shown on DeviceUserPage not HostDetailsPage
}
- if (isEmpty || !selfServiceData) {
+ // No self-service software available hides categories menu and header filters
+ if ((isEmpty || !selfServiceData) && !isFetching) {
return (
<>
- {renderHeaderFilters()}
-
- {renderCategoriesMenu()}
-
-
- >
- );
- }
-
- if (isFetching) {
- return (
- <>
- {renderHeaderFilters()}
-
- {renderCategoriesMenu()}
-
-
- >
- );
- }
-
- if (isEmptySearch) {
- return (
- <>
- {renderHeaderFilters()}
-
- {renderCategoriesMenu()}
-
- Not finding what you're looking for?{" "}
-
- >
- }
- />
-
+
>
);
}
@@ -417,7 +381,7 @@ const SoftwareSelfService = ({
selfServiceData?.software || [],
queryParams.category_id
)}
- isLoading={isLoading}
+ isLoading={isFetching}
defaultSortHeader={DEFAULT_SELF_SERVICE_QUERY_PARAMS.order_key}
defaultSortDirection={
DEFAULT_SELF_SERVICE_QUERY_PARAMS.order_direction
@@ -425,9 +389,26 @@ const SoftwareSelfService = ({
pageIndex={0}
disableNextPage={selfServiceData?.meta.has_next_results === false}
pageSize={DEFAULT_SELF_SERVICE_QUERY_PARAMS.per_page}
- emptyComponent={() => (
-
- )}
+ emptyComponent={() => {
+ return isEmptySearch ? (
+
+ Not finding what you're looking for?{" "}
+
+ >
+ }
+ />
+ ) : (
+
+ );
+ }}
showMarkAllPages={false}
isAllPagesSelected={false}
searchable={false}
@@ -437,11 +418,11 @@ const SoftwareSelfService = ({