// research_web/js/panels/AssetPanel.js /**Asset Library panel - browse and manage paper assets.*/ export function renderAssetPanel(container, api) { container.innerHTML = `

Asset Library

Loading...

`; // Tab switching container.querySelectorAll('.tab-btn').forEach(btn => { btn.addEventListener('click', () => { container.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active'); loadAssets(btn.dataset.tab); }); }); // Initial load loadAssets('papers'); function loadAssets(type) { const list = container.querySelector('#asset-list'); if (type === 'papers') { list.innerHTML = '

Loading papers...

'; api.listPapers().then(papers => { if (!papers || papers.length === 0) { list.innerHTML = '

No papers in library. Search papers in ComfyUI canvas to add them.

'; return; } list.innerHTML = papers.map(p => `

${p.title || 'Untitled'}

${p.authors_text || 'Unknown authors'}

${p.journal_or_source || ''} ${p.published_at || ''}

${p.read_status || 'unread'} ${p.library_status || 'pending'}
`).join(''); // Make cards draggable for canvas list.querySelectorAll('.asset-card').forEach(card => { card.addEventListener('dragstart', (e) => { e.dataTransfer.setData('application/json', JSON.stringify({ type: 'paper_asset', id: card.dataset.id, title: card.querySelector('h4').textContent })); e.dataTransfer.effectAllowed = 'copy'; }); }); }).catch(err => { list.innerHTML = `

Failed to load: ${err.message}

`; }); } else if (type === 'claims') { list.innerHTML = '

Claims panel coming in Phase 3.

'; } else if (type === 'sources') { list.innerHTML = '

Loading sources...

'; api.listSources().then(sources => { if (!sources || sources.length === 0) { list.innerHTML = '

No sources configured. Add sources to start your feed.

'; return; } list.innerHTML = sources.map(s => `

${s.name}

${s.category || ''} - ${s.intake_type}

${s.enabled ? 'enabled' : 'disabled'}
`).join(''); }).catch(err => { list.innerHTML = `

Failed to load: ${err.message}

`; }); } } }