From a85e47b28b992c6493a1a61ac52fecafb18e0b14 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Thu, 13 Jan 2022 12:12:54 -0500 Subject: [PATCH] Spiffier UI: Dashboard and Manage Host Page loading states (#3638) --- changes/issue-3051-update-loading-states | 1 + .../TableContainer/TableContainer.tsx | 8 +- .../HostSidePanel/HostSidePanel.tsx | 18 +- .../side_panels/HostSidePanel/_styles.scss | 4 + frontend/pages/Homepage/Homepage.tsx | 94 +++++++--- frontend/pages/Homepage/_styles.scss | 15 ++ .../cards/ActivityFeed/ActivityFeed.tsx | 49 +++-- .../Homepage/cards/ActivityFeed/_styles.scss | 21 ++- .../cards/HostsStatus/HostsStatus.tsx | 12 +- .../cards/HostsSummary/HostsSummary.tsx | 22 ++- .../Homepage/cards/Software/Software.tsx | 176 ++++++++++-------- .../Homepage/cards/Software/_styles.scss | 1 + .../Homepage/components/InfoCard/InfoCard.tsx | 21 ++- .../hosts/ManageHostsPage/ManageHostsPage.tsx | 7 +- 14 files changed, 302 insertions(+), 147 deletions(-) create mode 100644 changes/issue-3051-update-loading-states diff --git a/changes/issue-3051-update-loading-states b/changes/issue-3051-update-loading-states new file mode 100644 index 0000000000..298f8b3d71 --- /dev/null +++ b/changes/issue-3051-update-loading-states @@ -0,0 +1 @@ +* Better loading states for dashboard and manage host page \ No newline at end of file diff --git a/frontend/components/TableContainer/TableContainer.tsx b/frontend/components/TableContainer/TableContainer.tsx index e22f10324a..b9f9f25c23 100644 --- a/frontend/components/TableContainer/TableContainer.tsx +++ b/frontend/components/TableContainer/TableContainer.tsx @@ -205,6 +205,8 @@ const TableContainer = ({ return data.length; }, [filteredCount, clientFilterCount, data]); + const opacity = isLoading ? { opacity: 0.4 } : { opacity: 1 }; + return (
{renderCount()}
++ {renderCount()} +
)} {!renderCount && data && displayCount() && !disableCount ? ( -+
{TableContainerUtils.generateResultsCountText(
resultsTitle,
displayCount()
diff --git a/frontend/components/side_panels/HostSidePanel/HostSidePanel.tsx b/frontend/components/side_panels/HostSidePanel/HostSidePanel.tsx
index 69bdb4e6a3..4d528be07b 100644
--- a/frontend/components/side_panels/HostSidePanel/HostSidePanel.tsx
+++ b/frontend/components/side_panels/HostSidePanel/HostSidePanel.tsx
@@ -1,6 +1,10 @@
import React, { useState, useCallback } from "react";
import { filter } from "lodash";
+import { ILabel } from "interfaces/label";
+import { PLATFORM_LABEL_DISPLAY_ORDER } from "utilities/constants";
+
+import Spinner from "components/Spinner";
import Button from "components/buttons/Button";
// @ts-ignore
import InputField from "components/forms/fields/InputField";
@@ -8,21 +12,20 @@ import InputField from "components/forms/fields/InputField";
import PanelGroup from "components/side_panels/HostSidePanel/PanelGroup";
// @ts-ignore
import SecondarySidePanelContainer from "components/side_panels/SecondarySidePanelContainer";
-import { ILabel } from "interfaces/label";
-import { PLATFORM_LABEL_DISPLAY_ORDER } from "utilities/constants";
import PlusIcon from "../../../../assets/images/icon-plus-16x16@2x.png";
const baseClass = "host-side-panel";
interface IHostSidePanelProps {
- labels: ILabel[];
+ labels?: ILabel[];
onAddLabelClick: (evt: React.MouseEvent