Joreto

Untitled

Dec 15th, 2024
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async function solution() {
  2.  
  3. const apiURL = "http://localhost:3030/jsonstore/advanced/articles/";
  4. const sectionMain = document.querySelector("#main");
  5.  
  6.     let data = await ((await fetch(`${apiURL}list`)).json());
  7.  
  8.     for (let obj of data) {
  9.         let container = createDivElement("accordion");
  10.  
  11.         let header = createDivElement("head");
  12.         let span = document.createElement("span");
  13.         span.textContent = obj.title;
  14.         let toggleBtn = document.createElement("button");
  15.         toggleBtn.classList.add("button");
  16.         toggleBtn.textContent = "More";
  17.         toggleBtn.id = obj._id;
  18.         toggleBtn.addEventListener("click", toggleExtraText);
  19.         header.appendChild(span);
  20.         header.appendChild(toggleBtn);
  21.  
  22.         let extraInfo = createDivElement("extra");
  23.         let paragraph = document.createElement("p");
  24.  
  25.         let extraText = await ((await fetch(`${apiURL}details/${obj._id}`)).json());
  26.         paragraph.textContent = extraText.content;
  27.  
  28.         extraInfo.appendChild(paragraph);
  29.  
  30.         container.appendChild(header);
  31.         container.appendChild(extraInfo);
  32.  
  33.         sectionMain.appendChild(container);
  34.     };
  35. }
  36.  
  37. function createDivElement(className) {
  38.     let div = document.createElement("div");
  39.     div.classList.add(className);
  40.  
  41.     return div
  42. };
  43.  
  44. function toggleExtraText(event) {
  45.     let currentBtn = event.target;
  46.     const isClosed = currentBtn.textContent === "More";
  47.  
  48.     currentBtn.textContent = isClosed ? "Less" : "More";
  49.  
  50.     let content = currentBtn.parentElement.parentElement.querySelector(".extra");
  51.     content.style.display = isClosed ? "block" : "none";
  52.  
  53. };
  54.  
  55. solution()
Advertisement
Add Comment
Please, Sign In to add comment