@@ -100,4 +119,7 @@ ChplSearchResultControls.propTypes = {
pageStart: number.isRequired,
pageEnd: number.isRequired,
children: node,
+ fadeBackground: string,
+ sticky: bool,
+ wrapActions: bool,
};
diff --git a/src/app/components/util/chpl-sort-controls.jsx b/src/app/components/util/chpl-sort-controls.jsx
index c18bd2a4d3..7a5b59b530 100644
--- a/src/app/components/util/chpl-sort-controls.jsx
+++ b/src/app/components/util/chpl-sort-controls.jsx
@@ -3,6 +3,7 @@ import {
Box,
Button,
ButtonGroup,
+ Card,
Menu,
MenuItem,
makeStyles,
@@ -19,11 +20,15 @@ import ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';
import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
import SortIcon from '@material-ui/icons/Sort';
-import { theme } from 'themes';
+import { theme, palette } from 'themes';
const useStyles = makeStyles({
container: {
marginRight: '16px',
+ display: 'flex',
+ border: `1px solid ${palette.primaryBorder}`,
+ borderRadius: theme.shape.borderRadius,
+ alignItems: 'center',
[theme.breakpoints.down('sm')]: {
width: '100%',
marginRight: 0,
@@ -40,6 +45,10 @@ const useStyles = makeStyles({
justifyContent: 'flex-start',
},
},
+ directionButton: {
+ borderLeft: `1px solid ${palette.primaryBorder}`,
+ borderRadius: 0,
+ },
});
function ChplSortControls({
@@ -83,8 +92,8 @@ function ChplSortControls({
};
return (
-
-
+
+
+
);
}
diff --git a/src/app/components/util/pagination.jsx b/src/app/components/util/pagination.jsx
index f4208c4742..49694a9071 100755
--- a/src/app/components/util/pagination.jsx
+++ b/src/app/components/util/pagination.jsx
@@ -1,43 +1,23 @@
import React from 'react';
-import {
- TablePagination,
- makeStyles,
-} from '@material-ui/core';
+import { TablePagination } from '@material-ui/core';
import {
arrayOf,
- bool,
func,
number,
} from 'prop-types';
import { eventTrack } from 'services/analytics.service';
import { useAnalyticsContext } from 'shared/contexts';
-import { palette, theme } from 'themes';
-
-const useStyles = makeStyles({
- pagination: {
- position: 'relative',
- [theme.breakpoints.up('lg')]: {
- position: 'sticky',
- bottom: '64px',
- width: 'fit-content',
- marginLeft: 'auto',
- marginRight: 'auto',
- },
- },
-});
function ChplPagination({
count,
page,
rowsPerPage,
rowsPerPageOptions,
- sticky = true,
setPage,
setRowsPerPage,
}) {
const { analytics } = useAnalyticsContext();
- const classes = useStyles();
const handlePageChange = (event, newPage) => {
if (analytics) {
@@ -65,7 +45,6 @@ function ChplPagination({
return (
;
}
- return
;
+ return
;
};
return (
diff --git a/src/app/navigation/mobile-nav-drawer.jsx b/src/app/navigation/mobile-nav-drawer.jsx
index 2e115edd07..d42429a770 100644
--- a/src/app/navigation/mobile-nav-drawer.jsx
+++ b/src/app/navigation/mobile-nav-drawer.jsx
@@ -12,6 +12,7 @@ import {
Typography,
} from '@material-ui/core';
import CloseIcon from '@material-ui/icons/Close';
+import CloudDownloadIcon from '@material-ui/icons/CloudDownload';
import ExpandLessIcon from '@material-ui/icons/ExpandLess';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import MenuIcon from '@material-ui/icons/Menu';
@@ -124,6 +125,22 @@ function ChplMobileNavDrawer({ onHomeClick, onSearchClick }) {
setMobileMenuOpen(false);
};
+ const getDownloadIcon = (item) => {
+ if (!item.showDownloadIcon) {
+ return undefined;
+ }
+ if (item.primaryIcon) {
+ return
;
+ }
+ return
;
+ };
+
+ const getItemAnalytics = (item) => ({
+ ...analytics,
+ event: item.analyticsEvent,
+ category: item.analyticsCategory ?? 'Navigation',
+ });
+
const handleHomeClick = () => {
onHomeClick();
closeMobileMenu();
@@ -147,12 +164,6 @@ function ChplMobileNavDrawer({ onHomeClick, onSearchClick }) {
}));
};
- const getItemAnalytics = (item) => ({
- ...analytics,
- event: item.analyticsEvent,
- category: item.analyticsCategory ?? 'Navigation',
- });
-
const widgetSections = [{
key: 'cms',
title: 'CMS ID Creator',
@@ -240,6 +251,7 @@ function ChplMobileNavDrawer({ onHomeClick, onSearchClick }) {
analytics={getItemAnalytics(item)}
external={false}
router={item.router}
+ icon={getDownloadIcon(item)}
/>
))}
diff --git a/src/app/pages/organizations/developers/developers-view.jsx b/src/app/pages/organizations/developers/developers-view.jsx
index b6b9967c76..5af0d4a73d 100755
--- a/src/app/pages/organizations/developers/developers-view.jsx
+++ b/src/app/pages/organizations/developers/developers-view.jsx
@@ -1,14 +1,6 @@
import React, { useContext, useEffect, useState } from 'react';
import {
Button,
- CircularProgress,
- Paper,
- Table,
- TableBody,
- TableCell,
- TableContainer,
- TableRow,
- Typography,
makeStyles,
} from '@material-ui/core';
import CloudDownloadOutlinedIcon from '@material-ui/icons/CloudDownloadOutlined';
@@ -18,18 +10,28 @@ import ChplMessaging from './messaging/messaging';
import { useFetchDevelopersBySearch } from 'api/developer';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
import {
- ChplLink, ChplPagination, ChplLoadingTable, ChplSortableHeaders,
+ ChplLink,
+ ChplLoadingCards,
+ ChplPagination,
+ ChplSearchResultCard,
+ ChplSearchResultControls,
+ ChplSortControls,
} from 'components/util';
import { eventTrack } from 'services/analytics.service';
import { getAngularService } from 'services/angular-react-helper';
import { useSessionStorage as useStorage } from 'services/storage.service';
import { UserContext, useAnalyticsContext } from 'shared/contexts';
-import { palette, theme, utilStyles } from 'themes';
+import { palette, utilStyles } from 'themes';
+
+const sortOptions = [
+ { property: 'developer_name', text: 'Developer' },
+ { property: 'developer_code', text: 'Developer Code' },
+];
const useStyles = makeStyles({
...utilStyles,
@@ -37,47 +39,6 @@ const useStyles = makeStyles({
display: 'grid',
borderRadius: 4,
gridTemplateRows: '1fr',
- backgroundColor: palette.white,
- },
- pageContent: {
- display: 'grid',
- gridTemplateRows: '3fr 1fr',
- },
- stickyColumn: {
- position: 'sticky',
- left: 0,
- boxShadow: 'rgba(149, 157, 165, 0.1) 0px 4px 8px',
- backgroundColor: palette.white,
- overflowWrap: 'anywhere',
- [theme.breakpoints.up('sm')]: {
- minWidth: '275px',
- },
- },
- tableContainer: {
- overflowWrap: 'normal',
- border: `.5px solid ${palette.divider}`,
- margin: '0px 32px',
- width: 'auto',
- },
- tableResultsHeaderContainer: {
- display: 'grid',
- gap: '8px',
- margin: '16px 32px',
- gridTemplateColumns: '1fr',
- alignItems: 'center',
- justifyContent: 'space-between',
- [theme.breakpoints.up('sm')]: {
- gridTemplateColumns: 'auto auto',
- },
- },
- resultsContainer: {
- display: 'flex',
- gap: '8px',
- justifyContent: 'flex-start',
- alignItems: 'center',
- },
- wrap: {
- flexFlow: 'wrap',
},
});
@@ -99,7 +60,7 @@ function ChplDevelopersView() {
const classes = useStyles();
const {
- data, isError, isLoading, isFetching,
+ data, isError, isLoading,
} = useFetchDevelopersBySearch({
orderBy,
pageNumber,
@@ -128,12 +89,6 @@ function ChplDevelopersView() {
}
}, [data?.recordCount, pageNumber, data?.results?.length]);
- const headers = [
- { property: 'developer_name', text: 'Developer', sortable: true },
- { property: 'developer_code', text: 'Developer Code', sortable: true },
- { text: 'ONC-ACB for active Listings' },
- ];
-
const downloadDevelopers = () => {
eventTrack({
...analytics,
@@ -151,7 +106,7 @@ function ChplDevelopersView() {
setMessaging(false);
};
- const handleTableSort = (event, property, orderDirection) => {
+ const handleSort = (property, orderDirection) => {
eventTrack({
...analytics,
event: 'Sort Column',
@@ -198,131 +153,103 @@ function ChplDevelopersView() {
<>
-
-
-
- { isLoading
- && (
-
- )}
- { !isLoading
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
-
-
- Search Results:
- { developers.length === 0
- && (
-
- No results found
-
- )}
- { developers.length > 0
- && (
-
- {`(${pageStart}-${pageEnd} of ${recordCount} Results)`}
-
- )}
- { isFetching
- && (
-
- )}
-
- { developers.length > 0
+
+
+ }
+ >
+ Download information for
+ {' '}
+ { recordCount }
+ {' '}
+ {`Developer${recordCount !== 1 ? 's' : ''}`}
+
+ { hasAnyRole(['chpl-admin', 'chpl-onc'])
&& (
-
- }
- >
- Download information for
- {' '}
- { recordCount }
- {' '}
- {`Developer${recordCount !== 1 ? 's' : ''}`}
-
- { hasAnyRole(['chpl-admin', 'chpl-onc'])
- && (
-
- )}
-
+
)}
-
+
{ developers.length > 0
- && (
- <>
-
-
-
-
- { developers
- .map((item) => (
-
-
-
-
-
-
-
- { item.code }
-
-
- { item.oncAcbDisplay }
-
-
- ))}
-
-
-
-
+ { developers.map((item) => (
+
+ ),
+ },
+ {
+ label: 'Developer Code',
+ value: item.code,
+ },
+ {
+ label: 'ONC-ACB for Active Listings',
+ value: item.oncAcbDisplay,
+ },
+ ]]}
/>
- >
- )}
+ ))}
+
+ >
+ )}
>
)}
+
>
);
diff --git a/src/app/pages/organizations/developers/developers.jsx b/src/app/pages/organizations/developers/developers.jsx
index 37c4c5e09a..81e046e760 100755
--- a/src/app/pages/organizations/developers/developers.jsx
+++ b/src/app/pages/organizations/developers/developers.jsx
@@ -73,6 +73,7 @@ function ChplDevelopersPage() {
...certificationBodies,
key: 'acbsForActiveListings',
display: 'Has active Listings with ONC-ACB',
+ wrapText: true,
values,
}));
setFilters((f) => f
@@ -81,6 +82,7 @@ function ChplDevelopersPage() {
...certificationBodies,
key: 'acbsForAllListings',
display: 'Has any Listings with ONC-ACB',
+ wrapText: true,
values,
}));
}, [acbQuery.data, acbQuery.isLoading, acbQuery.isSuccess]);
diff --git a/src/app/pages/reports/activity/activity-view.jsx b/src/app/pages/reports/activity/activity-view.jsx
index 1f5071ddda..40186eb640 100755
--- a/src/app/pages/reports/activity/activity-view.jsx
+++ b/src/app/pages/reports/activity/activity-view.jsx
@@ -1,27 +1,21 @@
import React, { useEffect, useState } from 'react';
-import {
- Paper,
- Table,
- TableBody,
- TableCell,
- TableContainer,
- TableRow,
- Typography,
- makeStyles,
-} from '@material-ui/core';
+import { Box } from '@material-ui/core';
import ChplActivityDetails from './activity-details';
import { useFetchActivity } from 'api/questionable-activity';
-import { ChplLink,
+import {
+ ChplLink,
+ ChplLoadingCards,
+ ChplPagination,
ChplPageBody,
ChplPageHeader,
- ChplPagination,
- ChplLoadingTable,
- ChplSortableHeaders }
- from 'components/util';
+ ChplSearchResultCard,
+ ChplSearchResultControls,
+ ChplSortControls,
+} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -29,65 +23,6 @@ import { eventTrack } from 'services/analytics.service';
import { getDisplayDateFormat } from 'services/date-util';
import { useSessionStorage as useStorage } from 'services/storage.service';
import { useAnalyticsContext } from 'shared/contexts';
-import { palette, theme } from 'themes';
-
-const useStyles = makeStyles({
- linkWrap: {
- overflowWrap: 'anywhere',
- },
- pageContent: {
- display: 'grid',
- gridTemplateRows: '3fr 1fr',
- },
- searchContainer: {
- backgroundColor: palette.grey,
- padding: '16px 32px',
- display: 'grid',
- gridTemplateColumns: '1fr',
- gap: '16px',
- alignItems: 'center',
- [theme.breakpoints.up('md')]: {
- gridTemplateColumns: 'auto 10fr auto',
- },
- },
- stickyColumn: {
- position: 'sticky',
- left: 0,
- boxShadow: 'rgba(149, 157, 165, 0.1) 0px 4px 8px',
- backgroundColor: '#ffffff',
- overflowWrap: 'anywhere',
- [theme.breakpoints.up('sm')]: {
- minWidth: '275px',
- },
- },
- tableContainer: {
- overflowWrap: 'normal',
- border: '.5px solid #c2c6ca',
- marginTop: '16px',
- width: 'auto',
- },
- tableResultsHeaderContainer: {
- display: 'grid',
- gap: '8px',
- marginTop: '16px',
- gridTemplateColumns: '1fr',
- alignItems: 'center',
- justifyContent: 'space-between',
- [theme.breakpoints.up('sm')]: {
- gridTemplateColumns: 'auto auto',
- },
- },
- resultsContainer: {
- display: 'grid',
- gap: '8px',
- justifyContent: 'start',
- gridTemplateColumns: 'auto auto',
- alignItems: 'center',
- },
- wrap: {
- flexFlow: 'wrap',
- },
-});
function ChplActivityView() {
const storageKey = 'storageKey-activity';
@@ -98,7 +33,6 @@ function ChplActivityView() {
const [pageSize, setPageSize] = useStorage(`${storageKey}-pageSize`, 25);
const [sortDescending, setSortDescending] = useStorage(`${storageKey}-sortDescending`, true);
const [recordCount, setRecordCount] = useState(0);
- const classes = useStyles();
const filterContext = useFilterContext();
const { data, isError, isLoading } = useFetchActivity({
@@ -128,14 +62,8 @@ function ChplActivityView() {
}, [data?.recordCount, pageNumber, data?.results?.length]);
/* eslint object-curly-newline: ["error", { "minProperties": 5, "consistent": true }] */
- const headers = [
- { property: 'username', text: 'User' },
- { property: 'concept', text: 'Concept' },
- { property: 'activity_date', text: 'Activity Date', sortable: true },
- { text: 'Description' },
- { text: 'Reason' },
- { text: 'CHPL Link' },
- { text: 'Actions', invisible: true },
+ const sortOptions = [
+ { property: 'activity_date', text: 'Activity Date', reverseDefault: true },
];
const getLink = (activity) => {
@@ -215,7 +143,7 @@ function ChplActivityView() {
}
};
- const handleTableSort = (event, property, orderDirection) => {
+ const handleSort = (property, orderDirection) => {
eventTrack({
...analytics,
event: 'Sort Column',
@@ -233,66 +161,58 @@ function ChplActivityView() {
-
- { isLoading
- && (
-
- )}
- { !isLoading
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
-
-
- Search Results:
- { activities.length === 0
- && (
-
- No results found
-
- )}
- { activities.length > 0
- && (
-
- {`(${pageStart}-${pageEnd} of ${recordCount} Results)`}
-
- )}
-
-
+
+
+
{ activities.length > 0
&& (
<>
-
-
-
+ { activities.map((item) => (
+ }
/>
-
- { activities
- .map((item) => (
-
- { item.username }
- { item.concept }
- { getDisplayDateFormat(item.activityDate) }
- { item.description }
- { item.reason }
- { getLink(item) }
-
-
-
-
- ))}
-
-
-
+ ))}
+
)}
+
>
);
diff --git a/src/app/pages/reports/questionable-activity/questionable-activity-view.jsx b/src/app/pages/reports/questionable-activity/questionable-activity-view.jsx
index f2d8e52d09..a3fb306d71 100755
--- a/src/app/pages/reports/questionable-activity/questionable-activity-view.jsx
+++ b/src/app/pages/reports/questionable-activity/questionable-activity-view.jsx
@@ -1,14 +1,8 @@
import React, { useEffect, useState } from 'react';
import {
+ Box,
Button,
- Paper,
- Table,
- TableBody,
- TableCell,
- TableContainer,
- TableRow,
Typography,
- makeStyles,
} from '@material-ui/core';
import CloudDownloadOutlinedIcon from '@material-ui/icons/CloudDownloadOutlined';
import { useSelector } from 'react-redux';
@@ -17,14 +11,16 @@ import { useFetchQuestionableActivity } from 'api/questionable-activity';
import ChplQuestionableActivityDetails from 'components/activity/questionable-activity-details';
import {
ChplLink,
+ ChplLoadingCards,
+ ChplPagination,
ChplPageBody,
ChplPageHeader,
- ChplPagination,
- ChplLoadingTable,
- ChplSortableHeaders,
+ ChplSearchResultCard,
+ ChplSearchResultControls,
+ ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -33,54 +29,6 @@ import { getDisplayDateFormat } from 'services/date-util';
import { eventTrack } from 'services/analytics.service';
import { useSessionStorage as useStorage } from 'services/storage.service';
import { useAnalyticsContext } from 'shared/contexts';
-import { theme } from 'themes';
-
-const useStyles = makeStyles({
- linkWrap: {
- overflowWrap: 'anywhere',
- },
- pageContent: {
- display: 'grid',
- gridTemplateRows: '3fr 1fr',
- },
- stickyColumn: {
- position: 'sticky',
- left: 0,
- boxShadow: 'rgba(149, 157, 165, 0.1) 0px 4px 8px',
- backgroundColor: '#ffffff',
- overflowWrap: 'anywhere',
- [theme.breakpoints.up('sm')]: {
- minWidth: '275px',
- },
- },
- tableContainer: {
- overflowWrap: 'normal',
- border: '.5px solid #c2c6ca',
- marginTop: '16px',
- width: 'auto',
- },
- tableResultsHeaderContainer: {
- display: 'grid',
- gap: '8px',
- marginTop: '16px',
- gridTemplateColumns: '1fr',
- alignItems: 'center',
- justifyContent: 'space-between',
- [theme.breakpoints.up('sm')]: {
- gridTemplateColumns: 'auto auto',
- },
- },
- resultsContainer: {
- display: 'grid',
- gap: '8px',
- justifyContent: 'start',
- gridTemplateColumns: 'auto auto',
- alignItems: 'center',
- },
- wrap: {
- flexFlow: 'wrap',
- },
-});
function ChplQuestionableActivityView() {
const apiKey = useSelector((state) => state.browserInfo.apiKey);
@@ -95,7 +43,6 @@ function ChplQuestionableActivityView() {
const [pageSize, setPageSize] = useStorage(`${storageKey}-pageSize`, 25);
const [sortDescending, setSortDescending] = useStorage(`${storageKey}-sortDescending`, true);
const [recordCount, setRecordCount] = useState(0);
- const classes = useStyles();
const filterContext = useFilterContext();
const { data, isError, isLoading } = useFetchQuestionableActivity({
@@ -129,15 +76,12 @@ function ChplQuestionableActivityView() {
}, [API, authService]);
/* eslint object-curly-newline: ["error", { "minProperties": 5, "consistent": true }] */
- const headers = [
- { property: 'developer', text: 'Developer', sortable: true },
- { property: 'product', text: 'Product', sortable: true },
- { property: 'version', text: 'Version', sortable: true },
- { property: 'chpl_product_number', text: 'CHPL ID', sortable: true },
- { text: 'Activity' },
- { property: 'activity_date', text: 'Activity Date', sortable: true },
- { text: 'Reason' },
- { text: 'Actions', invisible: true },
+ const sortOptions = [
+ { property: 'developer', text: 'Developer' },
+ { property: 'product', text: 'Product' },
+ { property: 'version', text: 'Version' },
+ { property: 'chpl_product_number', text: 'CHPL ID' },
+ { property: 'activity_date', text: 'Activity Date', reverseDefault: true },
];
const handleClick = () => {
@@ -148,7 +92,7 @@ function ChplQuestionableActivityView() {
window.open(`${downloadLink}&${filterContext.queryString()}`);
};
- const handleTableSort = (event, property, orderDirection) => {
+ const handleSort = (property, orderDirection) => {
eventTrack({
...analytics,
event: 'Sort Column',
@@ -172,31 +116,23 @@ function ChplQuestionableActivityView() {
)}
/>
-
-
- { isLoading
- && (
-
- )}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
-
-
- Search Results:
- { activities.length === 0
- && (
-
- No results found
-
- )}
- { activities.length > 0
- && (
-
- {`(${pageStart}-${pageEnd} of ${recordCount} Results)`}
-
- )}
-
+
+
{ activities.length > 0
&& (
+
{ activities.length > 0
&& (
<>
-
-
-
-
- { activities
- .map((item) => (
-
-
- { item.developerId
- && (
-
- )}
-
- {item.productName}
- {item.versionName}
-
- { item.listingId
- && (
+
+ { activities.map((item) => (
+
+ )
+ : item.developerName || 'N/A'}
+ fieldGroups={[
+ [
+ { label: 'Product', value: item.productName },
+ { label: 'Version', value: item.versionName },
+ {
+ label: 'CHPL ID',
+ style: { flex: '2 1 320px' },
+ value: item.listingId
+ ? (
- )}
-
- {item.triggerName}
- { getDisplayDateFormat(item.activityDate) }
-
- { item.reason
- && (
-
- {item.reason}
-
- )}
- { item.certificationStatusChangeReason
- && (
-
- {item.certificationStatusChangeReason}
-
- )}
-
-
-
-
-
- ))}
-
-
-
+ )
+ : item.chplProductNumber,
+ },
+ ],
+ [
+ { label: 'Activity', value: item.triggerName },
+ { label: 'Activity Date', value: getDisplayDateFormat(item.activityDate) },
+ {
+ label: 'Reason',
+ style: { flex: '2 1 320px' },
+ value: item.reason || item.certificationStatusChangeReason || 'N/A',
+ },
+ ],
+ ]}
+ actions={}
+ />
+ ))}
+
)}
+
>
);
diff --git a/src/app/pages/search/api-documentation/api-documentation-view.jsx b/src/app/pages/search/api-documentation/api-documentation-view.jsx
index 4f8d76829a..b53a76a340 100755
--- a/src/app/pages/search/api-documentation/api-documentation-view.jsx
+++ b/src/app/pages/search/api-documentation/api-documentation-view.jsx
@@ -20,7 +20,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -170,10 +170,10 @@ function ChplApiDocumentationSearchView({ displayCriteria }) {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
@@ -282,6 +286,7 @@ function ChplApiDocumentationSearchView({ displayCriteria }) {
},
{
label: 'Mandatory Disclosures URL',
+ style: { fontSize: '0.85em' },
value: item.mandatoryDisclosures
? (
)}
+
>
);
diff --git a/src/app/pages/search/banned-developers/banned-developers-view.jsx b/src/app/pages/search/banned-developers/banned-developers-view.jsx
index a1401db6e7..32f5dc6ad4 100755
--- a/src/app/pages/search/banned-developers/banned-developers-view.jsx
+++ b/src/app/pages/search/banned-developers/banned-developers-view.jsx
@@ -18,7 +18,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -122,17 +122,18 @@ function ChplBannedDevelopersSearchView() {
inline
/>
.
-
+
>
)}
/>
-
- {isLoading && ()}
- {!isLoading
+
+ {isLoading && ()}
+ {!isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/corrective-action/corrective-action-view.jsx b/src/app/pages/search/corrective-action/corrective-action-view.jsx
index 34e350bf10..bdbb93792e 100755
--- a/src/app/pages/search/corrective-action/corrective-action-view.jsx
+++ b/src/app/pages/search/corrective-action/corrective-action-view.jsx
@@ -19,7 +19,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -139,10 +139,10 @@ function ChplCorrectiveActionSearchView() {
{ directReviewsAvailable
&& (
<>
-
-
- { isLoading && (
)}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
)}
diff --git a/src/app/pages/search/decertified-products/decertified-products-view.jsx b/src/app/pages/search/decertified-products/decertified-products-view.jsx
index 1774622761..ff209550d3 100755
--- a/src/app/pages/search/decertified-products/decertified-products-view.jsx
+++ b/src/app/pages/search/decertified-products/decertified-products-view.jsx
@@ -19,7 +19,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -124,10 +124,10 @@ function ChplDecertifiedProductsSearchView() {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/decision-support-interventions/decision-support-interventions-view.jsx b/src/app/pages/search/decision-support-interventions/decision-support-interventions-view.jsx
index 531b2bae64..6fd1bf91b2 100644
--- a/src/app/pages/search/decision-support-interventions/decision-support-interventions-view.jsx
+++ b/src/app/pages/search/decision-support-interventions/decision-support-interventions-view.jsx
@@ -19,7 +19,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -110,10 +110,10 @@ function ChplDecisionSupportInterventionsSearchView() {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/inactive-certificates/inactive-certificates-view.jsx b/src/app/pages/search/inactive-certificates/inactive-certificates-view.jsx
index 4084783299..b94d0774b5 100755
--- a/src/app/pages/search/inactive-certificates/inactive-certificates-view.jsx
+++ b/src/app/pages/search/inactive-certificates/inactive-certificates-view.jsx
@@ -19,7 +19,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -127,10 +127,10 @@ function ChplInactiveCertificatesSearchView() {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/listings/listings-view.jsx b/src/app/pages/search/listings/listings-view.jsx
index 91bf06107f..9a308ee5d3 100755
--- a/src/app/pages/search/listings/listings-view.jsx
+++ b/src/app/pages/search/listings/listings-view.jsx
@@ -24,7 +24,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -138,10 +138,10 @@ function ChplListingsView() {
subtitle="Please note that only active and suspended listings are shown by default. Use the Certification Status filter to display retired, withdrawn, or terminated listings."
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/real-world-testing/real-world-testing-view.jsx b/src/app/pages/search/real-world-testing/real-world-testing-view.jsx
index 8eb44f7933..448aea6f88 100755
--- a/src/app/pages/search/real-world-testing/real-world-testing-view.jsx
+++ b/src/app/pages/search/real-world-testing/real-world-testing-view.jsx
@@ -19,7 +19,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -306,10 +306,10 @@ function ChplRealWorldTestingSearchView() {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/sed/sed-view.jsx b/src/app/pages/search/sed/sed-view.jsx
index 95da2d9b2b..933e250d33 100755
--- a/src/app/pages/search/sed/sed-view.jsx
+++ b/src/app/pages/search/sed/sed-view.jsx
@@ -21,7 +21,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -124,10 +124,10 @@ function ChplSedSearchView() {
)}
/>
-
-
- { isLoading && ()}
- { !isLoading
+
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/search/svap/svap-view.jsx b/src/app/pages/search/svap/svap-view.jsx
index d8a13c3940..d7d15ca944 100755
--- a/src/app/pages/search/svap/svap-view.jsx
+++ b/src/app/pages/search/svap/svap-view.jsx
@@ -21,7 +21,7 @@ import {
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -232,10 +232,10 @@ function ChplSvapSearchView() {
)}
/>
-
-
- {isLoading && ()}
- {!isLoading
+
+
+ {isLoading && ()}
+ {!isLoading
&& (
<>
)}
+
>
);
diff --git a/src/app/pages/subscriptions/manage-subscriptions-view.jsx b/src/app/pages/subscriptions/manage-subscriptions-view.jsx
index e6ebdbf705..a690943265 100755
--- a/src/app/pages/subscriptions/manage-subscriptions-view.jsx
+++ b/src/app/pages/subscriptions/manage-subscriptions-view.jsx
@@ -4,10 +4,8 @@ import {
Button,
Card,
CardHeader,
- CircularProgress,
List,
ListItem,
- Typography,
makeStyles,
} from '@material-ui/core';
import { shape, string } from 'prop-types';
@@ -17,12 +15,14 @@ import { NotificationsOutlined, SubscriptionsOutlined } from '@material-ui/icons
import { useFetchAllSubscriptions, usePostGetDeliveredNotifications } from 'api/subscriptions';
import {
ChplLink,
+ ChplLoadingCards,
ChplPagination,
ChplSearchResultCard,
+ ChplSearchResultControls,
ChplSortControls,
} from 'components/util';
import {
- ChplFilterChips,
+ ChplFilterLayout,
ChplFilterSearchBar,
useFilterContext,
} from 'components/filter';
@@ -38,6 +38,9 @@ const sortOptions = [
];
const useStyles = makeStyles({
+ card: {
+ overflow: 'visible',
+ },
linkWrap: {
overflowWrap: 'anywhere',
},
@@ -84,14 +87,7 @@ const useStyles = makeStyles({
},
},
resultsContainer: {
- display: 'grid',
- gap: '8px',
- justifyContent: 'start',
- gridTemplateColumns: 'auto auto',
- alignItems: 'center',
- },
- wrap: {
- flexFlow: 'wrap',
+ padding: '0 32px',
},
listContainer: {
fontSize: 'smaller',
@@ -173,7 +169,7 @@ function ChplManageSubscriptionsView({ analytics }) {
const pageEnd = Math.min((pageNumber + 1) * pageSize, recordCount);
return (
-
+
-
-
-
- { isLoading
- && (
-
- )}
- { !isLoading
+
+ { isLoading && ()}
+ { !isLoading
&& (
<>
-
-
- Search Results:
- { subscriptions.length === 0
- && (
-
- No results found
-
- )}
- { subscriptions.length > 0
- && (
-
- {`(${pageStart}-${pageEnd} of ${recordCount} Results)`}
-
- )}
-
+
{ subscriptions.length > 0
&& (
)}
-
+
{ subscriptions.length > 0
&& (
<>
-
+
{ subscriptions.map((item) => (
)}
+
);