Merge branch 'dev'

This commit is contained in:
Jeff Emmett 2026-03-21 14:49:39 -07:00
commit c83656d74b
1 changed files with 23 additions and 4 deletions

View File

@ -209,9 +209,12 @@ class FolkCampaignsDashboard extends HTMLElement {
<div class="cd-empty"> <div class="cd-empty">
<div class="cd-empty__icon">📋</div> <div class="cd-empty__icon">📋</div>
<div class="cd-empty__title">No campaign workflows yet</div> <div class="cd-empty__title">No campaign workflows yet</div>
<div class="cd-empty__subtitle">Create your first workflow to automate social media campaigns</div> <div class="cd-empty__subtitle">Use the AI wizard for guided campaign creation, or start a blank workflow</div>
<div class="cd-header__actions" style="justify-content:center">
<button class="cd-btn cd-btn--wizard cd-btn--new-empty" id="btn-wizard-empty">\uD83E\uDDD9 Campaign Wizard</button>
<button class="cd-btn cd-btn--primary cd-btn--new-empty">+ New Workflow</button> <button class="cd-btn cd-btn--primary cd-btn--new-empty">+ New Workflow</button>
</div> </div>
</div>
` : ''; ` : '';
const loadingState = this.loading ? ` const loadingState = this.loading ? `
@ -233,6 +236,12 @@ class FolkCampaignsDashboard extends HTMLElement {
} }
.cd-btn--primary { background: var(--rs-primary, #3b82f6); color: #fff; } .cd-btn--primary { background: var(--rs-primary, #3b82f6); color: #fff; }
.cd-btn--primary:hover { background: var(--rs-primary-hover, #2563eb); } .cd-btn--primary:hover { background: var(--rs-primary-hover, #2563eb); }
.cd-btn--wizard {
background: linear-gradient(135deg, var(--rs-accent, #14b8a6), #0d9488);
color: #fff; font-weight: 600;
}
.cd-btn--wizard:hover { opacity: 0.9; }
.cd-header__actions { display: flex; gap: 0.5rem; align-items: center; }
.cd-grid { .cd-grid {
display: grid; display: grid;
@ -284,8 +293,11 @@ class FolkCampaignsDashboard extends HTMLElement {
<div class="cd-root"> <div class="cd-root">
<div class="cd-header"> <div class="cd-header">
<h2>Campaign Workflows</h2> <h2>Campaign Workflows</h2>
<div class="cd-header__actions">
<button class="cd-btn cd-btn--wizard" id="btn-wizard">\uD83E\uDDD9 Campaign Wizard</button>
${!this.loading && this.workflows.length > 0 ? '<button class="cd-btn cd-btn--primary" id="btn-new">+ New Workflow</button>' : ''} ${!this.loading && this.workflows.length > 0 ? '<button class="cd-btn cd-btn--primary" id="btn-new">+ New Workflow</button>' : ''}
</div> </div>
</div>
${loadingState} ${loadingState}
${emptyState} ${emptyState}
${!this.loading && this.workflows.length > 0 ? `<div class="cd-grid">${cards}</div>` : ''} ${!this.loading && this.workflows.length > 0 ? `<div class="cd-grid">${cards}</div>` : ''}
@ -308,8 +320,15 @@ class FolkCampaignsDashboard extends HTMLElement {
const btnNew = this.shadow.getElementById('btn-new'); const btnNew = this.shadow.getElementById('btn-new');
if (btnNew) btnNew.addEventListener('click', () => this.createWorkflow()); if (btnNew) btnNew.addEventListener('click', () => this.createWorkflow());
const btnNewEmpty = this.shadow.querySelector('.cd-btn--new-empty'); const btnNewEmpty = this.shadow.querySelector('.cd-btn--new-empty:not(#btn-wizard-empty)');
if (btnNewEmpty) btnNewEmpty.addEventListener('click', () => this.createWorkflow()); if (btnNewEmpty) btnNewEmpty.addEventListener('click', () => this.createWorkflow());
// Wizard buttons
const wizardUrl = `${this.basePath}campaign-wizard`;
const btnWizard = this.shadow.getElementById('btn-wizard');
if (btnWizard) btnWizard.addEventListener('click', () => { window.location.href = wizardUrl; });
const btnWizardEmpty = this.shadow.getElementById('btn-wizard-empty');
if (btnWizardEmpty) btnWizardEmpty.addEventListener('click', () => { window.location.href = wizardUrl; });
} }
} }