Advertisement
dilyana2001

Untitled

Oct 18th, 2021 (edited)
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const addPetButton = document.querySelector('form#add #container button');
  3.     addPetButton.addEventListener('click', addPetHandler);
  4.  
  5.     function addPetHandler(e) {
  6.         e.preventDefault();
  7.         const petNameInput = document.querySelector('form#add #container input[placeholder="Name"]');
  8.         const petAgeInput = document.querySelector('form#add #container input[placeholder="Age"]');
  9.         const petKindInput = document.querySelector('form#add #container input[placeholder="Kind"]');
  10.         const petCurrentOwnerInput = document.querySelector('form#add #container input[placeholder="Current Owner"]');
  11.  
  12.         petAgeInput.setAttribute('type', 'number');
  13.  
  14.         if (!petNameInput.value || (!petAgeInput.value || petAgeInput.value <= 0) ||
  15.             !petKindInput.value || !petCurrentOwnerInput.value) {
  16.             return;
  17.         }
  18.  
  19.         document.querySelector('section#adoption ul').appendChild(
  20.             addPet(petNameInput.value, petAgeInput.value, petKindInput.value, petCurrentOwnerInput.value)
  21.         );
  22.  
  23.         petNameInput.value = '';
  24.         petAgeInput.value = '';
  25.         petKindInput.value = '';
  26.         petCurrentOwnerInput.value = '';
  27.     }
  28.  
  29.     function interpolate(one, two, three) {
  30.         const paragraph = document.createElement('p');
  31.         paragraph.innerHTML = `<strong>${one}</strong> is a <strong>${two}</strong> year old <strong>${three}</strong>`;
  32.         return paragraph;
  33.     }
  34.  
  35.     function contactOwnerHandler(e) {
  36.         e.preventDefault();
  37.         const currentButtonParent = e.target.parentNode;
  38.  
  39.         const divHolder = document.createElement('div');
  40.         const enterYourNamesInput = document.createElement('input');
  41.         const yesBtn = document.createElement('button');
  42.  
  43.         enterYourNamesInput.setAttribute('placeholder', 'Enter your names');
  44.         yesBtn.textContent = 'Yes! I take it!';
  45.  
  46.         divHolder.appendChild(enterYourNamesInput);
  47.         divHolder.appendChild(yesBtn);
  48.         yesBtn.addEventListener('click', adoptedHandler);
  49.         e.target.remove();
  50.         currentButtonParent.appendChild(divHolder);
  51.     }
  52.  
  53.  
  54.     function adoptedHandler(e) {
  55.         const petForAdopt = e.target.parentNode.parentNode;
  56.         const petNameInput = petForAdopt.querySelector('p > strong:nth-child(1)');
  57.         const petAgeInput = petForAdopt.querySelector('p > strong:nth-child(2)');
  58.         const petKindInput = petForAdopt.querySelector('p > strong:nth-child(3)');
  59.         const petNewOwner = petForAdopt.querySelector('input');
  60.  
  61.         if (!petNewOwner.value) {
  62.             return;
  63.         }
  64.  
  65.         document.querySelector('section#adopted ul').appendChild(
  66.             adoptedPet(petNameInput.textContent, petAgeInput.textContent, petKindInput.textContent, petNewOwner.value)
  67.         );
  68.  
  69.         deletePetCardHandler(e);
  70.     }
  71.  
  72.     function adoptedPet(name, age, kind, currentOwner) {
  73.         const checkedBtn = document.createElement('button');
  74.         checkedBtn.textContent = `Checked`;
  75.         checkedBtn.addEventListener('click', deletePetCardHandler)
  76.         const newOwner = true;
  77.         const listElement = cardPet(name, age, kind, currentOwner, newOwner);
  78.         listElement.appendChild(checkedBtn);
  79.  
  80.         return listElement;
  81.     }
  82.  
  83.     function addPet(name, age, kind, currentOwner) {
  84.         const contactOwnerBtn = document.createElement('button');
  85.         contactOwnerBtn.textContent = `Contact with owner`;
  86.         const newOwner = false;
  87.         const listElement = cardPet(name, age, kind, currentOwner, newOwner);
  88.         listElement.appendChild(contactOwnerBtn);
  89.         contactOwnerBtn.addEventListener('click', contactOwnerHandler);
  90.  
  91.         return listElement;
  92.     }
  93.  
  94.     function cardPet(name, age, kind, currentOwner, newOwner) {
  95.         const listElement = document.createElement('li');
  96.         const paragraphElement = interpolate(name, age, kind);
  97.         const spanOwner = document.createElement('span');
  98.  
  99.         listElement.appendChild(paragraphElement);
  100.  
  101.         spanOwner.textContent = newOwner ? `New Owner: ${currentOwner}` : `Owner: ${currentOwner}`;
  102.  
  103.         listElement.appendChild(paragraphElement);
  104.         listElement.appendChild(spanOwner);
  105.  
  106.         return listElement;
  107.     }
  108.  
  109.     function deletePetCardHandler(e) {
  110.         e.target.closest('li').remove();
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement