diff --git a/backend/routes/api.js b/backend/routes/api.js
index f958c6a..75e1699 100644
--- a/backend/routes/api.js
+++ b/backend/routes/api.js
@@ -1122,7 +1122,7 @@ router.get("/getHistory", async (req, res) => {
});
const groupedResults = groupActivity(result.results);
- res.send({ current_page: page, pages: result.pages, results: Object.values(groupedResults) });
+ res.send({ current_page: page, pages: result.pages, size: size, results: Object.values(groupedResults) });
} catch (error) {
console.log(error);
}
@@ -1171,7 +1171,7 @@ router.post("/getLibraryHistory", async (req, res) => {
});
const groupedResults = groupActivity(result.results);
- res.send({ current_page: page, pages: result.pages, results: Object.values(groupedResults) });
+ res.send({ current_page: page, pages: result.pages, size: size, results: Object.values(groupedResults) });
} catch (error) {
console.log(error);
res.status(503);
@@ -1225,7 +1225,7 @@ router.post("/getItemHistory", async (req, res) => {
pageSize: size,
});
- res.send({ current_page: page, pages: result.pages, results: result.results });
+ res.send({ current_page: page, pages: result.pages, size: size, results: result.results });
} catch (error) {
console.log(error);
res.status(503);
@@ -1275,7 +1275,7 @@ router.post("/getUserHistory", async (req, res) => {
pageSize: size,
});
- res.send({ current_page: page, pages: result.pages, results: result.results });
+ res.send({ current_page: page, pages: result.pages, size: size, results: result.results });
} catch (error) {
console.log(error);
res.status(503);
diff --git a/src/pages/activity.jsx b/src/pages/activity.jsx
index 38269b7..2452021 100644
--- a/src/pages/activity.jsx
+++ b/src/pages/activity.jsx
@@ -33,7 +33,7 @@ function Activity() {
};
function setItemLimit(limit) {
- setItemCount(limit);
+ setItemCount(parseInt(limit));
localStorage.setItem("PREF_ACTIVITY_ItemCount", limit);
}
@@ -121,7 +121,7 @@ function Activity() {
};
if (config) {
- if (!data || data.current_page !== currentPage) {
+ if (!data || (data.current_page && data.current_page !== currentPage) || (data.size && data.size !== itemCount)) {
fetchHistory();
fetchLibraries();
}
diff --git a/src/pages/components/item-info.jsx b/src/pages/components/item-info.jsx
index cd0bfd5..a2bdd5f 100644
--- a/src/pages/components/item-info.jsx
+++ b/src/pages/components/item-info.jsx
@@ -27,6 +27,7 @@ import FileMusicLineIcon from "remixicon-react/FileMusicLineIcon";
import CheckboxMultipleBlankLineIcon from "remixicon-react/CheckboxMultipleBlankLineIcon";
import baseUrl from "../../lib/baseurl";
import GlobalStats from "./general/globalStats";
+import ErrorBoundary from "./general/ErrorBoundary.jsx";
function ItemInfo() {
const { Id } = useParams();
@@ -257,7 +258,7 @@ function ItemInfo() {
: <>>}
-
+
+
+
diff --git a/src/pages/components/item-info/item-activity.jsx b/src/pages/components/item-info/item-activity.jsx
index 83321dd..74a6cd2 100644
--- a/src/pages/components/item-info/item-activity.jsx
+++ b/src/pages/components/item-info/item-activity.jsx
@@ -9,7 +9,7 @@ import Config from "../../../lib/config.jsx";
function ItemActivity(props) {
const [data, setData] = useState();
const token = localStorage.getItem("token");
- const [itemCount, setItemCount] = useState(10);
+ const [itemCount, setItemCount] = useState(parseInt(localStorage.getItem("PREF_ACTIVITY_ItemCount") ?? "10"));
const [searchQuery, setSearchQuery] = useState("");
const [streamTypeFilter, setStreamTypeFilter] = useState("All");
const [config, setConfig] = useState();
@@ -19,6 +19,10 @@ function ItemActivity(props) {
const handlePageChange = (newPage) => {
setCurrentPage(newPage);
};
+ function setItemLimit(limit) {
+ setItemCount(parseInt(limit));
+ localStorage.setItem("PREF_ACTIVITY_ItemCount", limit);
+ }
useEffect(() => {
const fetchConfig = async () => {
@@ -56,7 +60,7 @@ function ItemActivity(props) {
}
};
- if (!data || data.current_page !== currentPage) {
+ if (!data || (data.current_page && data.current_page !== currentPage) || (data.size && data.size !== itemCount)) {
fetchData();
}
@@ -122,7 +126,7 @@ function ItemActivity(props) {
{
- setItemCount(event.target.value);
+ setItemLimit(event.target.value);
}}
value={itemCount}
className="my-md-3 w-md-75 rounded-0 rounded-end"
diff --git a/src/pages/components/library/library-activity.jsx b/src/pages/components/library/library-activity.jsx
index e623a7b..9e94362 100644
--- a/src/pages/components/library/library-activity.jsx
+++ b/src/pages/components/library/library-activity.jsx
@@ -24,7 +24,7 @@ function LibraryActivity(props) {
};
function setItemLimit(limit) {
- setItemCount(limit);
+ setItemCount(parseInt(limit));
localStorage.setItem("PREF_LIBRARY_ACTIVITY_ItemCount", limit);
}
@@ -68,7 +68,7 @@ function LibraryActivity(props) {
}
};
- if (!data || data.current_page !== currentPage) {
+ if (!data || (data.current_page && data.current_page !== currentPage) || (data.size && data.size !== itemCount)) {
fetchData();
}
diff --git a/src/pages/components/user-info/user-activity.jsx b/src/pages/components/user-info/user-activity.jsx
index e8f5366..ce7309b 100644
--- a/src/pages/components/user-info/user-activity.jsx
+++ b/src/pages/components/user-info/user-activity.jsx
@@ -13,7 +13,7 @@ import Config from "../../../lib/config.jsx";
function UserActivity(props) {
const [data, setData] = useState();
const token = localStorage.getItem("token");
- const [itemCount, setItemCount] = useState(10);
+ const [itemCount, setItemCount] = useState(parseInt(localStorage.getItem("PREF_ACTIVITY_ItemCount") ?? "10"));
const [searchQuery, setSearchQuery] = useState("");
const [streamTypeFilter, setStreamTypeFilter] = useState("All");
const [libraryFilters, setLibraryFilters] = useState([]);
@@ -23,6 +23,11 @@ function UserActivity(props) {
const [currentPage, setCurrentPage] = useState(1);
const [isBusy, setIsBusy] = useState(false);
+ function setItemLimit(limit) {
+ setItemCount(parseInt(limit));
+ localStorage.setItem("PREF_ACTIVITY_ItemCount", limit);
+ }
+
useEffect(() => {
const fetchConfig = async () => {
try {
@@ -105,7 +110,10 @@ function UserActivity(props) {
});
};
- fetchHistory();
+ if (!data || (data.current_page && data.current_page !== currentPage) || (data.size && data.size !== itemCount)) {
+ fetchHistory();
+ }
+
fetchLibraries();
const intervalId = setInterval(fetchHistory, 60000 * 5);
@@ -190,7 +198,7 @@ function UserActivity(props) {
{
- setItemCount(event.target.value);
+ setItemLimit(event.target.value);
}}
value={itemCount}
className="my-md-3 w-md-75 rounded-0 rounded-end"