diff --git a/client/src/components/commons/CommonsCatalog.tsx b/client/src/components/commons/CommonsCatalog.tsx index f6b2fcf0..5896b6bd 100644 --- a/client/src/components/commons/CommonsCatalog.tsx +++ b/client/src/components/commons/CommonsCatalog.tsx @@ -259,7 +259,7 @@ const CommonsCatalog = () => { loadCommonsCatalog(clear), loadPublicAssets(clear), loadPublicProjects(clear), - handleAuthorsSearch("", undefined, clear), + handleAuthorsSearch("", {}, clear), ]); } catch (err) { handleGlobalError(err); @@ -410,15 +410,16 @@ const CommonsCatalog = () => { // Authors async function handleAuthorsSearch( - query?: string, + query: string, authorFilters?: AuthorFilters, - clearAndUpdate = false + clearAndUpdate = false, + page = activePage ) { try { setAuthorsLoading(true); const res = await api.authorsSearch({ searchQuery: query, - page: activePage, + page, limit: ITEMS_PER_PAGE, ...authorFilters, }); @@ -563,8 +564,9 @@ const CommonsCatalog = () => { function handleLoadMoreAuthors() { if (loadingDisabled) return; - setActivePage(activePage + 1); - return handleAuthorsSearch(searchString); + const nextPage = activePage + 1; + setActivePage(nextPage); + return handleAuthorsSearch(searchString, authorsState, false, nextPage); } /** diff --git a/client/src/components/commons/CommonsCatalog/AssetsTable.tsx b/client/src/components/commons/CommonsCatalog/AssetsTable.tsx index 45f1bdfc..03d64b48 100644 --- a/client/src/components/commons/CommonsCatalog/AssetsTable.tsx +++ b/client/src/components/commons/CommonsCatalog/AssetsTable.tsx @@ -11,13 +11,11 @@ import { interface AssetsTableProps extends TableProps { items: ConductorSearchResponseFile[]; - lastElementRef?: any; loading?: boolean; } const AssetsTable: React.FC = ({ items, - lastElementRef, loading, ...rest }) => { @@ -114,7 +112,6 @@ const AssetsTable: React.FC = ({ ); })} - {loading && ( diff --git a/client/src/components/commons/CommonsCatalog/AuthorsTable.tsx b/client/src/components/commons/CommonsCatalog/AuthorsTable.tsx index 2ada3775..fae3d975 100644 --- a/client/src/components/commons/CommonsCatalog/AuthorsTable.tsx +++ b/client/src/components/commons/CommonsCatalog/AuthorsTable.tsx @@ -4,13 +4,11 @@ import { truncateString } from "../../util/HelperFunctions"; interface AuthorsTableProps extends TableProps { items: Author[]; - lastElementRef?: any; loading?: boolean; } const AuthorsTable: React.FC = ({ items, - lastElementRef, loading, ...rest }) => { @@ -58,7 +56,6 @@ const AuthorsTable: React.FC = ({ ); })} - {loading && ( diff --git a/client/src/components/commons/CommonsCatalog/BooksTable.tsx b/client/src/components/commons/CommonsCatalog/BooksTable.tsx index e7abeec3..8c3897b8 100644 --- a/client/src/components/commons/CommonsCatalog/BooksTable.tsx +++ b/client/src/components/commons/CommonsCatalog/BooksTable.tsx @@ -5,13 +5,11 @@ import { Link } from "react-router-dom"; interface BooksTableProps extends TableProps { items: Book[]; - lastElementRef?: any; loading?: boolean; } const BooksTable: React.FC = ({ items, - lastElementRef, loading, ...rest }) => { @@ -75,7 +73,6 @@ const BooksTable: React.FC = ({ ); })} - {loading && ( diff --git a/client/src/components/commons/CommonsCatalog/CatalogTab.tsx b/client/src/components/commons/CommonsCatalog/CatalogTab.tsx index fa4cf77a..719bed8b 100644 --- a/client/src/components/commons/CommonsCatalog/CatalogTab.tsx +++ b/client/src/components/commons/CommonsCatalog/CatalogTab.tsx @@ -1,5 +1,5 @@ import { TabPane, TabPaneProps } from "semantic-ui-react"; -import { cloneElement } from "react"; +import { cloneElement, useState } from "react"; import useInfiniteScroll from "../../../hooks/useInfiniteScroll"; interface CatalogTabProps extends TabPaneProps { @@ -31,16 +31,11 @@ const CatalogTab: React.FC = ({ return ( - {itemizedMode - ? cloneElement(itemizedRender as React.ReactElement, { - lastElementRef, - }) - : cloneElement(visualRender as React.ReactElement, { - lastElementRef, - })} + {itemizedMode ? itemizedRender : visualRender} +
{dataLength >= totalLength && (

End of results

diff --git a/client/src/components/commons/CommonsCatalog/ProjectsTable.tsx b/client/src/components/commons/CommonsCatalog/ProjectsTable.tsx index 4fc629b2..9882e350 100644 --- a/client/src/components/commons/CommonsCatalog/ProjectsTable.tsx +++ b/client/src/components/commons/CommonsCatalog/ProjectsTable.tsx @@ -11,13 +11,11 @@ import { format, parseISO } from "date-fns"; interface ProjectsTableProps extends TableProps { items: Project[]; - lastElementRef?: any; loading?: boolean; } const ProjectsTable: React.FC = ({ items, - lastElementRef, loading, ...rest }) => { @@ -109,7 +107,6 @@ const ProjectsTable: React.FC = ({ ); })} - {loading && ( diff --git a/client/src/components/commons/CommonsCatalog/VisualMode.tsx b/client/src/components/commons/CommonsCatalog/VisualMode.tsx index ad966a37..bb8a47d5 100644 --- a/client/src/components/commons/CommonsCatalog/VisualMode.tsx +++ b/client/src/components/commons/CommonsCatalog/VisualMode.tsx @@ -12,7 +12,6 @@ const VisualMode = ({ items, loading, noResultsMessage, - lastElementRef, }: { items: ( | Book @@ -22,11 +21,10 @@ const VisualMode = ({ )[]; loading?: boolean; noResultsMessage?: string; - lastElementRef?: any; }) => { if (items.length > 0) { return ( -
+
{items.map((item) => ( ))} @@ -37,7 +35,6 @@ const VisualMode = ({ ))} )} -
); } diff --git a/client/src/screens/commons/Author/index.tsx b/client/src/screens/commons/Author/index.tsx index c0d40f2a..097ea574 100644 --- a/client/src/screens/commons/Author/index.tsx +++ b/client/src/screens/commons/Author/index.tsx @@ -269,9 +269,9 @@ const CommonsAuthor = () => { items={assets} loading={!loadedAssets} noResultsMessage="No assets found for this author." - lastElementRef={lastElementRef} /> )} +
{assets.length >= totalAssets && (

End of results

diff --git a/server/api/search.ts b/server/api/search.ts index 4d33b417..5fb3c4de 100644 --- a/server/api/search.ts +++ b/server/api/search.ts @@ -1538,7 +1538,7 @@ async function authorsSearch( return res.send({ err: false, - numResults: totalCount, + numResults: req.query.primaryInstitution ? filtered.length : totalCount, results: filtered, }); } catch (err) {