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:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user