function renderSnippetsPanel(container, { getSnippets, saveSnippet, deleteSnippet, onInsert }) { container.innerHTML = `
${(s.code || '').substring(0, 100)}${(s.code || '').length > 100 ? '...' : ''}
No snippets yet. Click + to add one.
'; list.querySelectorAll('.snippet-insert').forEach((btn) => { btn.addEventListener('click', () => { const s = snippets.find((sn) => sn.id === btn.dataset.id); if (s) onInsert(s.code); }); }); list.querySelectorAll('.snippet-delete').forEach((btn) => { btn.addEventListener('click', async () => { await deleteSnippet(btn.dataset.id); loadSnippets(); }); }); } document .getElementById('snippets-search') ?.addEventListener('input', (e) => renderList(e.target.value)); document.getElementById('snippets-add')?.addEventListener('click', () => { const name = prompt('Snippet name:'); if (!name) return; const language = prompt('Language (e.g., javascript, python, html):') || 'text'; const code = prompt('Paste your code snippet:'); if (!code) return; saveSnippet({ id: Date.now().toString(), name, language, code }).then(() => loadSnippets()); }); loadSnippets(); } module.exports = { renderSnippetsPanel };