diff --git a/client/homebrew/pages/archivePage/archivePage.jsx b/client/homebrew/pages/archivePage/archivePage.jsx index bf6446f3c..b2279a8fa 100644 --- a/client/homebrew/pages/archivePage/archivePage.jsx +++ b/client/homebrew/pages/archivePage/archivePage.jsx @@ -31,7 +31,7 @@ const ArchivePage = createClass({ }; }, componentDidMount : function() { - this.loadPage(1); + }, handleChange(e) { this.setState({ title: e.target.value }); @@ -45,21 +45,24 @@ const ArchivePage = createClass({ searching: false }); }, - loadPage: async function(pageNumber) { - try { - this.updateUrl(); - this.setState({ searching: true, error: null }); - const title = encodeURIComponent(this.state.title); - const response = await fetch(`/archive?title=${title}&page=${pageNumber}`); + loadPage: async function(page) { + if(this.state.title == '') {} else { + + try { + //this.updateUrl(); + this.setState({ searching: true, error: null }); + const title = encodeURIComponent(this.state.title); + const response = await fetch(`/archive?title=${title}&page=${page}`); - if (response.ok) { - const res = await response.json(); - this.updateStateWithBrews(res.brews, pageNumber, res.totalPages); - } + if (response.ok) { + const res = await response.json(); + this.updateStateWithBrews(res.brews, page, res.totalPages); + } - } catch (error) { - console.log("LoadPage error: " + error); + } catch (error) { + console.log("LoadPage error: " + error); + } } }, updateUrl: function() { diff --git a/server/archive.api.js b/server/archive.api.js index 18161aecf..4166bf80a 100644 --- a/server/archive.api.js +++ b/server/archive.api.js @@ -7,13 +7,14 @@ const archive = { /* Searches for matching title, also attempts to partial match */ findBrews: async (req, res, next) => { try { - const page = parseInt(req.params.page) || 1; + const title = req.query.title || ''; + const page = parseInt(req.query.page) || 1; console.log('try:',page); const pageSize = 10; // Set a default page size const skip = (page - 1) * pageSize; - const title = { - title: { $regex: decodeURIComponent(req.params.title), $options: 'i' }, + const titleQuery = { + title: { $regex: decodeURIComponent(title), $options: 'i' }, published: true }; @@ -24,7 +25,7 @@ const archive = { textBin: 0, }; - const brews = await HomebrewModel.find(title, projection) + const brews = await HomebrewModel.find(titleQuery, projection) .skip(skip) .limit(pageSize) .maxTimeMS(5000) @@ -47,6 +48,6 @@ const archive = { } }; -router.get('/archive/:title/:page', asyncHandler(archive.findBrews)); +router.get('/archive', asyncHandler(archive.findBrews)); module.exports = router; \ No newline at end of file