diff --git a/frontend/campaign-builder.html b/frontend/campaign-builder.html
index 25f873b..022bc5b 100644
--- a/frontend/campaign-builder.html
+++ b/frontend/campaign-builder.html
@@ -2057,9 +2057,19 @@
Merge Tags
@@ -2087,7 +2097,34 @@
Launch campaign
// Bind inputs
document.getElementById('ep-subject').addEventListener('input', (e) => { step.subject = e.target.value; });
document.getElementById('ep-body').addEventListener('input', (e) => { step.body = e.target.value; });
+ // Preview tab logic
+ const MOCK_DATA = {
+ '{{firstName}}': 'John',
+ '{{lastName}}': 'Cena',
+ '{{email}}': 'john.cena@example.com',
+ '{{company}}': 'WWE Corp',
+ '{{icebreaker}}': 'I loved your recent blog post!'
+ };
+ document.getElementById('tab-preview').addEventListener('click', () => {
+ document.getElementById('tab-preview').classList.replace('btn-outline-secondary', 'btn-primary');
+ document.getElementById('tab-edit').classList.replace('btn-primary', 'btn-outline-secondary');
+ document.getElementById('edit-view').classList.add('d-none');
+ document.getElementById('preview-view').classList.remove('d-none');
+
+ let preview = document.getElementById('ep-body').value;
+ Object.entries(MOCK_DATA).forEach(([tag, value]) => {
+ preview = preview.replaceAll(tag, value);
+ });
+ document.getElementById('email-preview-box').textContent = preview;
+ });
+
+ document.getElementById('tab-edit').addEventListener('click', () => {
+ document.getElementById('tab-edit').classList.replace('btn-outline-secondary', 'btn-primary');
+ document.getElementById('tab-preview').classList.replace('btn-primary', 'btn-outline-secondary');
+ document.getElementById('preview-view').classList.add('d-none');
+ document.getElementById('edit-view').classList.remove('d-none');
+ });
let activeEditor = document.getElementById('ep-body');
document.getElementById('ep-subject').addEventListener('focus', () => {