// نظام التعليقات class CommentSystem { constructor() { this.commentForm = document.getElementById('comment-form'); this.commentsContainer = document.getElementById('comments-container'); this.replyButtons = document.querySelectorAll('.reply-btn'); this.initializeEventListeners(); } initializeEventListeners() { // معالجة إضافة تعليق جديد this.commentForm?.addEventListener('submit', (e) => this.handleNewComment(e)); // معالجة أزرار الرد this.replyButtons.forEach(button => { button.addEventListener('click', () => this.handleReply(button)); }); // معالجة أزرار الإعجاب document.querySelectorAll('.like-btn').forEach(button => { button.addEventListener('click', () => this.handleLike(button)); }); } async handleNewComment(e) { e.preventDefault(); const formData = new FormData(e.target); try { const response = await fetch('/api/comments.php', { method: 'POST', body: formData }); if (!response.ok) throw new Error('فشل إضافة التعليق'); const comment = await response.json(); this.addCommentToDOM(comment); e.target.reset(); } catch (error) { console.error('Comment error:', error); alert('حدث خطأ أثناء إضافة التعليق'); } } handleReply(button) { const commentId = button.dataset.commentId; const replyForm = document.querySelector(`.reply-form[data-comment-id="${commentId}"]`); // إظهار/إخفاء نموذج الرد if (replyForm) { replyForm.classList.toggle('active'); } } async handleLike(button) { const commentId = button.dataset.commentId; const likeCount = button.querySelector('.like-count'); try { const response = await fetch('/api/like-comment.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ commentId }) }); if (!response.ok) throw new Error('فشل تسجيل الإعجاب'); const data = await response.json(); likeCount.textContent = data.likes; button.classList.toggle('liked'); } catch (error) { console.error('Like error:', error); } } addCommentToDOM(comment) { const commentElement = document.createElement('div'); commentElement.className = 'comment'; commentElement.innerHTML = `
${comment.userName}

${comment.userName}

${comment.date}

${comment.content}

`; this.commentsContainer.prepend(commentElement); } } // تهيئة نظام التعليقات document.addEventListener('DOMContentLoaded', () => { new CommentSystem(); });