diff --git a/changes/11355-software-page-rendering-bugs b/changes/11355-software-page-rendering-bugs new file mode 100644 index 0000000000..e0ee3a148c --- /dev/null +++ b/changes/11355-software-page-rendering-bugs @@ -0,0 +1 @@ +- Fix a bug where an extraneous loading spinner was rendered on the Software page. diff --git a/frontend/pages/software/ManageSoftwarePage/ManageSoftwarePage.tsx b/frontend/pages/software/ManageSoftwarePage/ManageSoftwarePage.tsx index c1d92b739f..bcfcc681d8 100644 --- a/frontend/pages/software/ManageSoftwarePage/ManageSoftwarePage.tsx +++ b/frontend/pages/software/ManageSoftwarePage/ManageSoftwarePage.tsx @@ -613,12 +613,64 @@ const ManageSoftwarePage = ({ searchQuery !== "" || queryParams.vulnerable === "true"); - return !isRouteOk || - (isPremiumTier && !userTeams) || - !globalConfig || - (!softwareConfig && !softwareConfigError) ? ( - - ) : ( + const renderSoftwareTable = () => { + if ( + isFetchingCount || + isFetchingSoftware || + !globalConfig || + (!softwareConfig && !softwareConfigError) + ) { + return ; + } + if ( + (softwareError && !isFetchingSoftware) || + (softwareConfigError && !isFetchingSoftwareConfig) + ) { + return ; + } + return ( + ( + + )} + defaultSortHeader={sortHeader || DEFAULT_SORT_HEADER} + defaultSortDirection={sortDirection || DEFAULT_SORT_DIRECTION} + defaultPageIndex={page || 0} + defaultSearchQuery={searchQuery} + manualSortBy + pageSize={DEFAULT_PAGE_SIZE} + showMarkAllPages={false} + isAllPagesSelected={false} + resetPageIndex={resetPageIndex} + disableNextPage={isLastPage} + searchable={searchable} + inputPlaceHolder="Search software by name or vulnerabilities (CVEs)" + onQueryChange={onQueryChange} + additionalQueries={filterVuln ? "vulnerable" : ""} // additionalQueries serves as a trigger + // for the useDeepEffect hook to fire onQueryChange for events happeing outside of + // the TableContainer + customControl={searchable ? renderVulnFilterDropdown : undefined} + stackControls + renderCount={renderSoftwareCount} + renderFooter={renderTableFooter} + disableMultiRowSelect + onSelectSingleRow={handleRowSelect} + /> + ); + }; + + return (
@@ -655,51 +707,7 @@ const ManageSoftwarePage = ({
{renderHeaderDescription()}
-
- {(softwareError && !isFetchingSoftware) || - (softwareConfigError && !isFetchingSoftwareConfig) ? ( - - ) : ( - ( - - )} - defaultSortHeader={sortHeader || DEFAULT_SORT_HEADER} - defaultSortDirection={sortDirection || DEFAULT_SORT_DIRECTION} - defaultPageIndex={page || 0} - defaultSearchQuery={searchQuery} - manualSortBy - pageSize={DEFAULT_PAGE_SIZE} - showMarkAllPages={false} - isAllPagesSelected={false} - resetPageIndex={resetPageIndex} - disableNextPage={isLastPage} - searchable={searchable} - inputPlaceHolder="Search software by name or vulnerabilities (CVEs)" - onQueryChange={onQueryChange} - additionalQueries={filterVuln ? "vulnerable" : ""} // additionalQueries serves as a trigger - // for the useDeepEffect hook to fire onQueryChange for events happeing outside of - // the TableContainer - customControl={searchable ? renderVulnFilterDropdown : undefined} - stackControls - renderCount={renderSoftwareCount} - renderFooter={renderTableFooter} - disableMultiRowSelect - onSelectSingleRow={handleRowSelect} - /> - )} -
+
{renderSoftwareTable()}
{showManageAutomationsModal && (