Enhance category data fetching by adding full response handling and improving socket communication in Content component

This commit is contained in:
seb
2025-07-03 04:01:10 +02:00
parent f326596f48
commit 1ed06804a0
2 changed files with 29 additions and 5 deletions

View File

@@ -39,7 +39,7 @@ const fetchCategoryProducts = (socket, categoryId) => {
socket.emit(
"getCategoryProducts",
{ categoryId: parseInt(categoryId) },
{ full:true, categoryId: parseInt(categoryId) },
(response) => {
clearTimeout(timeout);
if (response && response.products !== undefined) {

View File

@@ -238,6 +238,8 @@ class Content extends Component {
});
}
fetchCategoryData(categoryId) {
const cachedData = getCachedCategoryData(categoryId);
if (cachedData) {
@@ -251,14 +253,36 @@ class Content extends Component {
console.log("Socket not connected yet, waiting for connection to fetch category data");
return;
}
console.log(`productList:${categoryId}`);
this.props.socket.off(`productList:${categoryId}`);
// Track if we've received the full response to ignore stub response if needed
let receivedFullResponse = false;
this.props.socket.on(`productList:${categoryId}`,(response) => {
console.log("getCategoryProducts full response", response);
receivedFullResponse = true;
setCachedCategoryData(categoryId, response);
if (response && response.products !== undefined) {
this.processDataWithCategoryTree(response, categoryId);
} else {
console.log("fetchCategoryData in Content failed", response);
}
});
this.props.socket.emit("getCategoryProducts", { categoryId: categoryId },
(response) => {
setCachedCategoryData(categoryId, response);
if (response && response.products !== undefined) {
this.processDataWithCategoryTree(response, categoryId);
console.log("getCategoryProducts stub response", response);
// Only process stub response if we haven't received the full response yet
if (!receivedFullResponse) {
setCachedCategoryData(categoryId, response);
if (response && response.products !== undefined) {
this.processDataWithCategoryTree(response, categoryId);
} else {
console.log("fetchCategoryData in Content failed", response);
}
} else {
console.log("fetchCategoryData in Content failed", response);
console.log("Ignoring stub response - full response already received");
}
}
);