`;
pdfContent.innerHTML = pdfHTML;
document.querySelectorAll('.copy-btn').forEach(btn => {
btn.addEventListener('click', handleCopy);
});
downloadPdfBtn.disabled = false;
showState('results');
} catch (error) {
console.error("Name generation error:", error);
showState('error');
} finally {
setButtonLoading(false);
}
};
const handleCopy = (event) => {
const button = event.target;
const nameToCopy = button.dataset.name;
const textarea = document.createElement('textarea');
textarea.value = nameToCopy;
document.body.appendChild(textarea);
textarea.select();
try {
document.execCommand('copy');
button.textContent = 'Copied!';
setTimeout(() => { button.textContent = 'Copy Name'; }, 2000);
} catch (err) {
console.error('Failed to copy name: ', err);
}
document.body.removeChild(textarea);
};
const handlePdfDownload = () => {
const { jsPDF } = window.jspdf;
if (!window.html2canvas || !jsPDF) {
console.error("PDF generation libraries not loaded.");
return;
}
pdfContent.classList.remove('hidden');
html2canvas(pdfContent, { scale: 2 }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF('p', 'pt', 'a4');
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save('business-name-ideas.pdf');
pdfContent.classList.add('hidden');
}).catch(err => {
console.error("PDF generation failed:", err);
pdfContent.classList.add('hidden');
});
};
// --- Event Listeners ---
generateBtn.addEventListener('click', handleGenerateNames);
downloadPdfBtn.addEventListener('click', handlePdfDownload);
});
