Advertisement
Liliana797979

forum - js applications

Nov 12th, 2021
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { createHomeViewTopic } from "./homeView.js";
  2.  
  3. let topicContainerElement = document.querySelector('.topic-container');
  4.  
  5. fetch('http://localhost:3030/jsonstore/collections/myboard/posts')
  6. .then(res => res.json())
  7. .then(function (res) {
  8.     Object.values(res).forEach(topic => {
  9.         topicContainerElement.appendChild(createHomeViewTopic(topic));
  10.     })
  11. })
  12.  
  13. let form = document.querySelector('main form');
  14. form.addEventListener('submit',createPost);
  15.  
  16. let cancelButton = form.querySelector('.cancel');
  17. cancelButton.addEventListener('click',form.reset());
  18.  
  19. function createPost(e) {
  20.     e.preventDefault();
  21.  
  22.     let formData = new FormData(e.target);
  23.     let title = formData.get('topicName');
  24.     let username = formData.get('username');
  25.     let post = formData.get('postText');
  26.  
  27.     let topicData = [title,username,post];
  28.  
  29.     if (topicData.some(x => x === '')) {
  30.         alert('Required fields cannot be empty!')
  31.         return;
  32.     }
  33.     e.target.reset();
  34.     let url = 'http://localhost:3030/jsonstore/collections/myboard/posts';
  35.     fetch(url, {
  36.         method: 'POST',
  37.         headers: {
  38.             'Content-Type': 'application/json'
  39.         },
  40.         body: JSON.stringify({
  41.             username,
  42.             title,
  43.             post
  44.         })
  45.     }).then(res => res.json()).then(res => topicContainerElement.appendChild(createHomeViewTopic(res)));
  46.    
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement