Note
Saved on: ${date.toLocaleString()}
${note.content}
`; document.body.appendChild(pdfContainer); const canvas = await html2canvas(pdfContainer, { scale: 2 }); document.body.removeChild(pdfContainer); const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'px', format: [canvas.width, canvas.height] }); pdf.addImage(imgData, 'PNG', 0, 0, canvas.width, canvas.height); pdf.save(`note-${note.id}.pdf`); }; // --- INITIALIZATION --- const initialize = () => { if (!SpeechRecognition) { elements.dashboard.unsupportedMsg.classList.remove('hidden'); elements.dashboard.recordBtn.disabled = true; elements.dashboard.saveNoteBtn.disabled = true; } Object.keys(elements.tabs).forEach(id => elements.tabs[id].addEventListener('click', () => switchTab(id))); elements.nav.next.addEventListener('click', () => { const i = tabs.indexOf(currentTab); if (i < tabs.length - 1) switchTab(tabs[i + 1]); }); elements.nav.prev.addEventListener('click', () => { const i = tabs.indexOf(currentTab); if (i > 0) switchTab(tabs[i - 1]); }); elements.dashboard.recordBtn.addEventListener('click', handleRecordClick); elements.dashboard.saveNoteBtn.addEventListener('click', handleSaveNote); elements.notes.list.addEventListener('click', handleNotesListClick); updateNavButtons(); renderNotes(); }; initialize(); });