Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export function visualiseComments(postId,topicContainer){
- getAllComments();
- let homeLink=document.querySelector("a");
- homeLink.addEventListener("click", function (e){
- e.preventDefault();
- console.log("back to all topics")
- })
- let main=document.getElementsByTagName("main")[0];
- main.appendChild(topicContainer);
- let submitForm=document.createElement("div");
- submitForm.classname="answer-comment";
- submitForm.innerHTML=`<p><span>currentUser</span> comment:</p>
- <div class="answer">
- <form>
- <textarea name="postText" id="comment" cols="30" rows="10"></textarea>
- <div>
- <label for="username">Username <span class="red">*</span></label>
- <input type="text" name="username" id="username">
- </div>
- <button>Post</button>
- </form>
- </div>`;
- main.appendChild(submitForm);
- let postButton=submitForm.querySelector("button");
- console.log(postButton)
- let nameArea=document.getElementById("comment");
- let userInput=document.getElementById("username");
- postButton.addEventListener("click", function(e){
- e.preventDefault();
- postComment()
- })
- function postComment(){
- let commentText=nameArea.value;
- let author=userInput.value;
- let newComment={commentAuthor:author, text:commentText, postId}
- var myHeaders = new Headers();
- myHeaders.append("Content-Type", "application/json");
- var raw = JSON.stringify(newComment);
- var requestOptions = {
- method: 'POST',
- headers: myHeaders,
- body: raw,
- redirect: 'follow'
- };
- fetch("http://localhost:3030/jsonstore/collections/myboard/comments", requestOptions)
- .then(response => response.json())
- .then(result => getAllComments())
- .catch(error => console.log('error', error));
- }
- function getAllComments(){
- var requestOptions = {
- method: 'GET',
- redirect: 'follow'
- };
- fetch("http://localhost:3030/jsonstore/collections/myboard/comments", requestOptions)
- .then(response => response.json())
- .then(result => filterComments(result))
- .catch(error => console.log('error', error));
- }
- function filterComments(data){
- let arr=Object.values(data);
- let filteredArr=arr.filter(a=>a.postId==postId);
- main.innerHTML="";
- main.appendChild(topicContainer);
- filteredArr.forEach(c => {
- renderComment(c)
- });
- main.appendChild(submitForm)
- }
- function renderComment(data){
- let newCommentDiv=document.createElement("div");
- newCommentDiv.className="comment";
- newCommentDiv.innerHTML=`<header class="header">
- <p><span>${data.commentAuthor}</span> posted on <time>${Date.now()}</time></p>
- </header>
- <div class="comment-main">
- <div class="userdetails">
- <img src="./static/profile.png" alt="avatar">
- </div>
- <div class="post-content">
- <p>${data.text}</p>
- </div>
- </div>
- <div class="footer">
- <p><span>5</span> likes</p>
- </div>`
- nameArea.value="";
- userInput.value="";
- main.appendChild(newCommentDiv);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement