wodpachua

JS file

Apr 1st, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. const addBookBtn = document.querySelector(".add-book");
  2. const addBookForm = document.querySelector(".overlay-cont");
  3. const deleteBookButton = document.querySelector(".delete-btn");
  4. // const bookCards = document.querySelectorAll(".book-card");
  5. const inputFocus = document.querySelector("#name");
  6. const addMessage = document.querySelector('.add-message');
  7. const deleteMessage = document.querySelector('.delete-message');
  8. // const form = document.querySelector("form");
  9. const submitter = document.querySelector('.submit-btn');
  10. const booksContainer = document.querySelector('.books-wrapper');
  11. // const formDetails = new FormData(form, submitter);
  12.  
  13. // INITIAL BOOKS DISPLAYED
  14. const myLibrary = [{title: 'Title', author: 'Author', pages: 111, read: 'on'}];
  15. displayBooks();
  16.  
  17. // const myLibrary = [];
  18.  
  19. // BOOK STORAGE
  20. function Book(title, author = 'Unknown', pages, read) {
  21. this.title = title;
  22. this.author = author;
  23. this.pages = pages;
  24. this.read = read;
  25. this.info = function() {
  26. return `The book '${this.title}' by ${this.author}, ${this.pages} pages, ${this.read}.`;
  27. }
  28. }
  29.  
  30. function addBookToLibrary() {
  31. const title = document.querySelector('#name').value;
  32. const author = document.querySelector('#author').value;
  33. const pages = parseInt(document.querySelector('#pages').value);
  34. const read = document.querySelector('#read').value;
  35.  
  36. const newBook = new Book(title, author, pages, read)
  37. myLibrary.push(newBook);
  38. // console.table(myLibrary);
  39.  
  40. addMessage.style.visibility = 'visible';
  41. setTimeout(function() {
  42. addMessage.style.visibility = 'hidden';
  43. }, 1000);
  44.  
  45.  
  46. displayBooks();
  47. }
  48.  
  49. submitter.addEventListener('click', function(event) {
  50. event.preventDefault();
  51. addBookToLibrary();
  52. addBookForm.style.visibility = "hidden";
  53. })
  54.  
  55.  
  56. // BOOK DISPLAY
  57.  
  58. function addBookCard(name, author, pages, read) {
  59. const bookCard = document.createElement('div');
  60. bookCard.classList.add('book-card');
  61. bookCard.innerHTML =
  62. `<div class="book">
  63. <div>
  64. <div class="book-name">${name}<hr></div>
  65. <div class="book-author">${author}</div>
  66. </div>
  67. <div class="book-pages">Pages: <span class="pages">${pages}</span></div>
  68. <div class="book-status">Status: <span class="status">${read}</span></div>
  69. </div>
  70. <div class="book-controls">
  71. <button class="delete-btn" type="button">
  72. <img src="./assests/delete.svg" alt="delete" class="delete-icon">
  73. </button>
  74. </div>`;
  75.  
  76. booksContainer.appendChild(bookCard);
  77.  
  78. }
  79.  
  80. function displayBooks() {
  81. booksContainer.replaceChildren('');
  82. myLibrary.forEach(book => {
  83. addBookCard(book.title, book.author, book.pages, book.read);
  84. });
  85. }
  86.  
  87.  
  88. // DISPLAYING FORM
  89. addBookBtn.addEventListener('click', function() {
  90. addBookForm.style.visibility = "visible";
  91. inputFocus.focus();
  92. });
  93.  
  94. addBookForm.addEventListener('click', function(e) {
  95. if (e.target === addBookForm) {
  96. addBookForm.style.visibility = "hidden";
  97. }
  98. });
  99.  
  100.  
  101. // REMOVING BOOK
  102.  
  103. deleteBookButton.addEventListener('click', function() {
  104. console.log('Hello');
  105. })
  106.  
  107. // console.log(deleteBookButton)
Advertisement
Add Comment
Please, Sign In to add comment