cse110-fa22-group29/source/assets/scripts/main.js

68 lines
1.9 KiB
JavaScript
Raw Normal View History

2022-11-08 03:18:05 +00:00
// main.js
import {getAllReviewsFromStorage, getTopReviewsFromStorage, getReviewsByTag} from "./localStorage.js";
2022-11-08 03:18:05 +00:00
// Run the init() function when the page has loaded
window.addEventListener("DOMContentLoaded", init);
2022-11-08 03:18:05 +00:00
function init() {
// Get the reviews from localStorage
let reviews = getAllReviewsFromStorage();
// Add each reviews to the <main> element
addReviewsToDocument(reviews);
// Add the event listeners to the form elements
initFormHandler();
2022-11-08 03:18:05 +00:00
}
2022-11-08 03:18:05 +00:00
/**
2022-11-08 23:57:02 +00:00
* @param {Array<Object>} reviews An array of reviews
2022-11-08 03:18:05 +00:00
*/
2022-11-08 23:57:02 +00:00
function addReviewsToDocument(reviews) {
2022-11-21 19:58:26 +00:00
let reviewBox = document.getElementById("review-container");
reviews.forEach(review => {
let newReview = document.createElement("review-card");
newReview.data = review;
2022-11-21 19:58:26 +00:00
reviewBox.append(newReview);
});
2022-11-08 03:18:05 +00:00
}
/**
2022-11-11 08:03:56 +00:00
* Adds the necessary event handlers to <form> and the clear storage
2022-11-08 03:18:05 +00:00
* <button>.
*/
function initFormHandler() {
2022-11-12 22:16:03 +00:00
//btn to create form (could be its own function?)
let createBtn = document.getElementById("create-btn");
createBtn.addEventListener("click", function(){
window.location.assign("./CreatePage.html");
});
let ratingBtn = document.getElementById("rating-btn");
ratingBtn.addEventListener("click", function() {
let reviewBox = document.getElementById("review-container");
while(reviewBox.firstChild){
reviewBox.removeChild(reviewBox.firstChild);
}
let reviewArr = getTopReviewsFromStorage(12);
addReviewsToDocument(reviewArr);
});
//grabbing search field
let searchField = document.getElementById("search-bar");
let searchBtn = document.getElementById("search-btn");
//adding search functionality
searchBtn.addEventListener('click', function(){
let reviewBox = document.getElementById("review-container");
//clearing after a search
while(reviewBox.firstChild){
reviewBox.removeChild(reviewBox.firstChild);
}
let reviewArr = getReviewsByTag(searchField.value);
addReviewsToDocument(reviewArr);
})
2022-11-11 20:07:58 +00:00
}