comments.addEventListener('submit', (e) => {
if (!e.target.classList.contains('comment__form')) return;
e.preventDefault();
const parentElem = e.target.parentNode;
const url = e.target.getAttribute('action');
const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
const data = {
content: e.target.children[1].value,
post_id: {{ $post->id }},
user_id: @auth {{ Auth::user()->id }} @else 0 @endauth,
parent_id: +e.target.dataset.id || null
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': token
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
console.log(data);
if (!data.comment.parent_id) {
e.target.after(getCommentAfterPublishing(data));
e.target.children[1].value = '';
} else {
if (!parentElem.parentNode.querySelector('.comment__replies')) {
const wrap = document.createElement('div');
wrap.classList.add('comment__replies');
parentElem.parentNode.append(wrap);
wrap.append(getCommentAfterPublishing(data));
} else {
parentElem.parentNode.querySelector('.comment__replies').prepend(getCommentAfterPublishing(data));
}
document.querySelector('.comment__action-reply').click();
}
})
.catch(error => {
console.log(JSON.parse(error));
});
});