diff --git a/frontend/app/bookmarks/page.js b/frontend/app/bookmarks/page.js
index 7d4300f..ace585d 100644
--- a/frontend/app/bookmarks/page.js
+++ b/frontend/app/bookmarks/page.js
@@ -18,6 +18,8 @@ export default function Bookmarks() {
const [releases, setReleases] = useState();
const [page, setPage] = useState(0);
+ const [isNextPage, setIsNextPage] = useState(true);
+
const searchParams = useSearchParams();
const createQueryString = useCallback(
(name, value) => {
@@ -45,6 +47,12 @@ export default function Bookmarks() {
const url = `${endpoints.user.bookmarks[list]}?page=${page}&token=${userStore.token}`;
const data = await getData(url);
+ if (data.content.length < 25) {
+ setIsNextPage(false);
+ } else {
+ setIsNextPage(true);
+ }
+
// Handle initial load (page 0) or subsequent pagination
if (page === 0) {
setReleases(data.content);
@@ -106,6 +114,7 @@ export default function Bookmarks() {
setPage={setPage}
list={list}
releases={releases}
+ isNextPage={isNextPage}
/>
)}
>
diff --git a/frontend/app/components/ReleasesOverview/ReleasesOverview.jsx b/frontend/app/components/ReleasesOverview/ReleasesOverview.jsx
index 37cfb1e..9856e31 100644
--- a/frontend/app/components/ReleasesOverview/ReleasesOverview.jsx
+++ b/frontend/app/components/ReleasesOverview/ReleasesOverview.jsx
@@ -27,17 +27,19 @@ export default function ReleasesOverview(props) {
-
+ {props.isNextPage && (
+
+ )}
>
) : (
diff --git a/frontend/app/history/page.js b/frontend/app/history/page.js
index 845adf8..fb7322b 100644
--- a/frontend/app/history/page.js
+++ b/frontend/app/history/page.js
@@ -13,11 +13,19 @@ export default function History() {
const [releases, setReleases] = useState();
const [page, setPage] = useState(0);
+ const [isNextPage, setIsNextPage] = useState(true);
+
async function fetchData(page = 0) {
if (userStore.token) {
const url = `${endpoints.user.history}?page=${page}&token=${userStore.token}`;
const data = await getData(url);
+ if (data.content.length < 25) {
+ setIsNextPage(false);
+ } else {
+ setIsNextPage(true);
+ }
+
// Handle initial load (page 0) or subsequent pagination
if (page === 0) {
setReleases(data.content);
@@ -44,7 +52,12 @@ export default function History() {
{!userStore.isAuth ? (
) : (
-
+
)}
>
);
diff --git a/frontend/app/page.js b/frontend/app/page.js
index 3c2df44..ad02abf 100644
--- a/frontend/app/page.js
+++ b/frontend/app/page.js
@@ -15,6 +15,8 @@ export default function Home() {
const [releases, setReleases] = useState();
const [page, setPage] = useState(0);
+ const [isNextPage, setIsNextPage] = useState(true);
+
const searchParams = useSearchParams();
const createQueryString = useCallback(
(name, value) => {
@@ -41,6 +43,12 @@ export default function Home() {
const url = `${endpoints.index[list]}?page=${page}`;
const data = await getData(url);
+ if (data.content.length < 25) {
+ setIsNextPage(false);
+ } else {
+ setIsNextPage(true);
+ }
+
// Handle initial load (page 0) or subsequent pagination
if (page === 0) {
setReleases(data.content);
@@ -93,6 +101,7 @@ export default function Home() {
setPage={setPage}
list={list}
releases={releases}
+ isNextPage={isNextPage}
/>
);
}
diff --git a/frontend/app/search/page.js b/frontend/app/search/page.js
index 3c3099d..966045b 100644
--- a/frontend/app/search/page.js
+++ b/frontend/app/search/page.js
@@ -21,6 +21,7 @@ export default function Search() {
const [releases, setReleases] = useState();
const [page, setPage] = useState(0);
const [query, setQuery] = useState("");
+ const [isNextPage, setIsNextPage] = useState(true);
const [searches, setSearches] = useState(JSON.parse(getSearches()));
@@ -39,6 +40,12 @@ export default function Search() {
const url = `${endpoints.search}?query=${query}&page=${page}`;
const data = await getData(url);
+ if (data.content.length < 25) {
+ setIsNextPage(false);
+ } else {
+ setIsNextPage(true);
+ }
+
// Handle initial load (page 0) or subsequent pagination
if (page === 0) {
setReleases(data.content);
@@ -118,7 +125,12 @@ export default function Search() {
{releases ? (
releases.length > 0 ? (
-
+
) : (
search