Guest User

Untitled

a guest
Jun 16th, 2023
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. window.addEventListener("load", solve);
  2.  
  3. function solve() {
  4.  
  5. const addButton = document.querySelector('.button-section input');
  6. const form = document.querySelector('form');
  7.  
  8. const [preview, collection] = Array.from(document.querySelectorAll('#side-wrapper div ul'));
  9. let saveBtn;
  10. let editBtn;
  11. let cancelBtn;
  12.  
  13. addButton.addEventListener('click', (event) => {
  14. event.preventDefault();
  15.  
  16. const formData = new FormData(form);
  17.  
  18. const transformedData = Object.entries(Object.fromEntries(formData)).reduce((obj, [key, value]) => {
  19. obj[key] = value;
  20. return obj;
  21. }, {});
  22. if (Object.values(transformedData).some(el => el.trim() == '')) {
  23. return;
  24. }
  25.  
  26. addButton.disabled = true;
  27.  
  28. preview.innerHTML = `
  29. <li class="gem-info">
  30. <article>
  31. <h4>${transformedData.field1}</h4>
  32. <p>Color: ${transformedData.field2}</p>
  33. <p>Carats: ${transformedData.field3}$</p>
  34. <p>Price: ${transformedData.field4}$</p>
  35. <p>Type: ${transformedData.field5}</p>
  36. </article>
  37. <button class="save-btn">Save to Collection</button>
  38. <button class="edit-btn">Edit Information</button>
  39. <button class="cancel-btn">Cancel</button>
  40. </li>`
  41.  
  42. // Get a reference to the buttons
  43. saveBtn = document.querySelector('.save-btn');
  44. editBtn = document.querySelector('.edit-btn');
  45. cancelBtn = document.querySelector('.cancel-btn');
  46.  
  47. // Add click event listener to the "Save to Collection" button
  48. saveBtn.addEventListener('click', saveFunc.bind(null, transformedData));
  49.  
  50. // Add click event listener to the "Edit Information" button
  51. editBtn.addEventListener('click', editFunc.bind(null, transformedData));
  52.  
  53. // Add click event listener to the "Cancel" button
  54. cancelBtn.addEventListener('click', cancelFunc);
  55. form.reset();
  56. })
  57.  
  58. function saveFunc(data) {
  59. addButton.disabled = false
  60. preview.innerHTML = '';
  61. collection.innerHTML += `
  62. <li>
  63. <p class="collection-item">${data.field1} - Color: ${data.field2}/
  64. Carats: ${data.field3}/ Price: ${data.field4}$/ Type: ${data.field5}
  65. </p>
  66. </li>
  67. `
  68. }
  69. function editFunc(data) {
  70.  
  71. const childrens = Array.from(form.querySelector('div .inner-wrap').children);
  72. childrens.forEach((ch, i) => ch.value = Object.values(data)[i]);
  73. preview.innerHTML = '';
  74.  
  75. addButton.disabled = false
  76. }
  77. function cancelFunc(event) {
  78. addButton.disabled = false;
  79. preview.innerHTML = '';
  80. }
  81.  
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment