0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-07 14:12:43 +00:00

"Refactor loadPage function in ArchivePage component to fix wrong load of data"

This commit is contained in:
Víctor Losada Hernández
2024-05-22 08:17:12 +02:00
parent 888cf55b3d
commit d56ea62b5e

View File

@@ -78,53 +78,53 @@ const ArchivePage = createClass({
loadPage: async function (page, update) { loadPage: async function (page, update) {
console.log('running loadPage'); console.log('running loadPage');
//load form data directly this.setState({ searching: true, error: null });
/*
const title = document.getElementById('title').value || ''; const performSearch = async ({ title, size, v3, legacy }) => {
const size = document.getElementById('size').value || 10; if (title !== '') {
const v3 = document.getElementById('v3').checked; try {
const legacy = document.getElementById('legacy').checked; const response = await request.get(
State is usually not fast enough for this function `/api/archive?title=${title}&page=${page}&size=${size}&v3=${v3}&legacy=${legacy}`
*/ );
if (response.ok) {
const {title, size, v3, legacy} = this.state; this.updateStateWithBrews(response.body.brews, page);
} else {
// Update state with form data for later, only when first page throw new Error(`Error: ${response.status}`);
}
} catch (error) {
console.log('error at loadPage: ', error);
this.setState({ error: `${error.response ? error.response.status : error.message}` });
this.updateStateWithBrews([], 1);
}
} else {
this.setState({ error: '404' });
}
};
if (update === true) { if (update === true) {
const title = document.getElementById('title').value || ''; const title = document.getElementById('title').value || '';
const size = document.getElementById('size').value || 10; const size = document.getElementById('size').value || 10;
const v3 = document.getElementById('v3').checked; const v3 = document.getElementById('v3').checked;
const legacy = document.getElementById('legacy').checked; const legacy = document.getElementById('legacy').checked;
this.setState({ this.setState(
title: title, {
pageSize: size, title: title,
v3: v3, pageSize: size,
legacy: legacy, v3: v3,
}); legacy: legacy,
this.updateUrl(title, page, size, v3, legacy); },
} () => {
// State is updated, now perform the search
if (title !== '') { performSearch({ title, size, v3, legacy });
try {
this.setState({ searching: true, error: null });
const response = await request.get(
`/api/archive?title=${title}&page=${page}&size=${size}&v3=${v3}&legacy=${legacy}`
);
if (response.ok) {
this.updateStateWithBrews(response.body.brews, page);
} }
} catch (error) { );
console.log('error at loadPage: ', error); } else {
this.setState({ error: `${error.response.status}` }); const { title, size, v3, legacy } = this.state;
this.updateStateWithBrews([], 1); performSearch({ title, size, v3, legacy });
}
if (!this.state.brewCollection) {
this.setState({ error: '404' });
}
} }
}, },
loadTotal: async function () { loadTotal: async function () {
console.log('running loadTotal'); console.log('running loadTotal');
const {title, v3, legacy} = this.state; const {title, v3, legacy} = this.state;