async function loadUserData() { const dataList = document.getElementById('dataList'); if (!dataList) return; try { const result = await api.getData(); if (result.success) { if (result.data.length === 0) { dataList.innerHTML = '

No data submitted yet

'; } else { dataList.innerHTML = result.data .map( (item) => `
${api.sanitizeHTML(item.data)} ${new Date(item.created_at).toLocaleString()}
` ) .join(''); document.querySelectorAll('.btn-delete').forEach((btn) => { btn.addEventListener('click', async (e) => { const id = e.currentTarget.dataset.id; try { await api.deleteData(id); loadUserData(); } catch (error) { console.error('Failed to delete:', error); } }); }); } } } catch (error) { console.error('Failed to load data:', error); } } function initDataForm() { const dataForm = document.getElementById('dataForm'); const messageDiv = document.getElementById('message'); if (dataForm) { dataForm.addEventListener('submit', async (e) => { e.preventDefault(); messageDiv.textContent = 'Processing...'; messageDiv.className = 'message info'; const data = dataForm.data.value.trim(); try { const result = await api.submitData(data); messageDiv.textContent = result.message; messageDiv.className = 'message success'; dataForm.reset(); loadUserData(); } catch (error) { messageDiv.textContent = error.message; messageDiv.className = 'message error'; } }); } } document.addEventListener('DOMContentLoaded', async () => { await api.getCSRFToken(); initDataForm(); loadUserData(); });