Skip to content

Commit

Permalink
Merge pull request #103 from alamin655/js
Browse files Browse the repository at this point in the history
Streamline search and navigation logic for better code maintainability
  • Loading branch information
xffxff authored Jun 10, 2023
2 parents d03ec00 + 08e64b3 commit e8935bc
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 20 deletions.
27 changes: 21 additions & 6 deletions public/static/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
let search_box = document.querySelector('input')
function search_web() {
window.location = `search?q=${search_box.value}`
/**
* Selects the input element for the search box
* @type {HTMLInputElement}
*/
const searchBox = document.querySelector('input');

/**
* Redirects the user to the search results page with the query parameter
*/
function searchWeb() {
const query = searchBox.value.trim();
if (query) {
window.location.href = `search?q=${encodeURIComponent(query)}`;
}
}

search_box.addEventListener('keyup', (e) => {
/**
* Listens for the 'Enter' key press event on the search box and calls the searchWeb function
* @param {KeyboardEvent} e - The keyboard event object
*/
searchBox.addEventListener('keyup', (e) => {
if (e.key === 'Enter') {
search_web()
searchWeb();
}
})
});
41 changes: 27 additions & 14 deletions public/static/pagination.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
/**
* Navigates to the next page by incrementing the current page number in the URL query parameters.
* @returns {void}
*/
function navigate_forward() {
const url = new URL(window.location)
const searchParams = url.searchParams
const url = new URL(window.location);
const searchParams = url.searchParams;

let q = searchParams.get('q')
let page = searchParams.get('page')
let q = searchParams.get('q');
let page = parseInt(searchParams.get('page'));

if (page === null) {
page = 2
window.location = `${url.origin}${url.pathname}?q=${q}&page=${page}`
if (isNaN(page)) {
page = 1;
} else {
window.location = `${url.origin}${url.pathname}?q=${q}&page=${++page}`
page++;
}

window.location.href = `${url.origin}${url.pathname}?q=${encodeURIComponent(q)}&page=${page}`;
}

/**
* Navigates to the previous page by decrementing the current page number in the URL query parameters.
* @returns {void}
*/
function navigate_backward() {
const url = new URL(window.location)
const searchParams = url.searchParams
const url = new URL(window.location);
const searchParams = url.searchParams;

let q = searchParams.get('q')
let page = searchParams.get('page')
let q = searchParams.get('q');
let page = parseInt(searchParams.get('page'));

if (page !== null && page > 1) {
window.location = `${url.origin}${url.pathname}?q=${q}&page=${--page}`
if (isNaN(page)) {
page = 1;
} else if (page > 1) {
page--;
}

window.location.href = `${url.origin}${url.pathname}?q=${encodeURIComponent(q)}&page=${page}`;
}

0 comments on commit e8935bc

Please sign in to comment.