Kemenag dan Pemprov DKI Bahas Percepatan Pengalihan Aset Lahan KUA
'; } else if (countEl) { countEl.textContent = items.length + ' Komentar'; } // Update sticky bar count too var sbCount = document.getElementById('hops-stickybar-count'); if (sbCount) sbCount.textContent = items.length; } // ─── 5. Toast ─── function showToast(msg, isError) { toastEl.textContent = msg; toastEl.className = 'hops-opini-toast show' + (isError ? ' error' : ''); setTimeout(function() { toastEl.className = 'hops-opini-toast'; }, 3000); } // ─── 6. Submit comment (Kompas.com-style) ─── function submitComment() { var comment = (commentInput.value || '').trim(); if (!comment || comment.length < 3) { commentInput.focus(); showToast('Komentar terlalu pendek', true); return; } // Not logged in → show login popup, draft stays in input + localStorage if (!isLoggedIn) { if (typeof window.openLoginPopup === 'function') { window.openLoginPopup('Login untuk menyampaikan komentar', 'comment'); } else { try { localStorage.setItem('postLoginAction', JSON.stringify({ action: 'comment', url: window.location.href })); } catch(e) {} window.location.href = 'https:/login'; } return; } // Logged in → send comment sendBtn.disabled = true; fetch(storeUrl, { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrfToken, 'Accept': 'application/json' }, body: JSON.stringify({ post_id: postId, comment: comment }) }) .then(function(r) { return r.json().then(function(data) { data._status = r.status; return data; }); }) .then(function(data) { sendBtn.disabled = false; if (data._status === 401) { // Session expired — show login popup, draft stays if (typeof window.openLoginPopup === 'function') { window.openLoginPopup('Sesi berakhir, silakan login kembali', 'comment'); } else { try { localStorage.setItem('postLoginAction', JSON.stringify({ action: 'comment', url: window.location.href })); } catch(e) {} window.location.href = 'https:/login'; } return; } if (data._status === 422 && data.errors) { var msgs = Object.values(data.errors).flat(); showToast(msgs[0] || 'Data tidak valid', true); return; } if (data.error) { showToast(data.message || 'Gagal mengirim komentar', true); return; } // Success — clear input and draft showToast(data.message || 'Komentar terkirim!'); commentInput.value = ''; localStorage.removeItem(LS_DRAFT); // If comment was published immediately, prepend it if (data.comment) { var c = data.comment; c.is_mine = true; // just submitted by me var el = document.createElement('div'); el.innerHTML = renderComment(c); var newItem = el.firstChild; var empty = listEl.querySelector('.hops-opini-empty'); if (empty) empty.remove(); var countEl = listEl.querySelector('.hops-opini-count'); if (countEl) { var n = parseInt(countEl.textContent) + 1; countEl.textContent = n + ' Komentar'; countEl.after(newItem); } else { var countDiv = document.createElement('div'); countDiv.className = 'hops-opini-count'; countDiv.textContent = '1 Komentar'; listEl.insertBefore(countDiv, listEl.firstChild); countDiv.after(newItem); } bindDeleteButtons(); } else { loadComments(); } }) .catch(function(err) { sendBtn.disabled = false; showToast('Gagal mengirim komentar. Periksa koneksi Anda.', true); }); } sendBtn.addEventListener('click', submitComment); commentInput.addEventListener('keydown', function(e) { if (e.key === 'Enter') { e.preventDefault(); submitComment(); } }); // Lazy load comments when section becomes visible if ('IntersectionObserver' in window) { var observer = new IntersectionObserver(function(entries) { if (entries[0].isIntersecting) { loadComments(); observer.disconnect(); } }, { rootMargin: '200px' }); observer.observe(document.getElementById('section-komentar')); } else { loadComments(); } })();
Terkini
Kemenag-Pemprov Jakarta Ngebut Alihkan Aset KUA, Ada Apa?
Kejari Bekasi Komitmen Penuh Dukung Pemkot Bersih Hukum
Target Terlampaui!" Mudik Gratis UMY Pecahkan Rekor
ICMI Kota Serang Siap Bersinergi dengan Pemkot, Dorong Program Serang Mengaji hingga Pelatihan Pemandi Jenazah
Bagaimana Kota Bekasi Raih Rekor MURI Penulisan Al-Qur'an?
Polsek Ciwandan Patroli Dialogis di Pangkalan Ojek, Sampaikan Pesan Kamtibmas
Satgas PRR Targetkan Nol Pengungsi di Tenda Sebelum Idulfitri 2026
Sebelum Lebaran, Target Kami Tak Ada Lagi Pengungsi di Tenda
Ambarrukmo Ulang Tahun ke-20, Bagikan Takjil Spesial 3 Hari
Pemkot Tangerang Remajakan 10 Unit BRT Tayo, Komitmen Tingkatkan Layanan Transportasi
Dinas Perhubungan Kota Serang Ganti Kontaktor PJU di Panel Dishub Kabupaten
Pemkot Tangerang Gelar Vaksinasi Rabies Gratis Selama Ramadan hingga 11 Maret
***