// State var items = []; var lists = [ { id: '1', name: 'Dev Friends', contacts: [] }, { id: '2', name: 'Meme Buddies', contacts: [] }, { id: '3', name: 'Business', contacts: [] } ]; // Load data function loadData() { chrome.storage.local.get(['hookd_items', 'hookd_lists'], function(result) { items = result.hookd_items || []; lists = result.hookd_lists || [ { id: '1', name: 'Dev Friends', contacts: [] }, { id: '2', name: 'Meme Buddies', contacts: [] }, { id: '3', name: 'Business', contacts: [] } ]; renderAll(); }); } // Save items function saveItems() { chrome.storage.local.set({ hookd_items: items }); } // Render all function renderAll() { renderInbox(); renderLists(); loadHandle(); } // Tab switching function switchTab(tabId) { var contents = document.querySelectorAll('.tab-content'); for (var i = 0; i < contents.length; i++) { contents[i].classList.remove('active'); } var tabs = document.querySelectorAll('.tab'); for (var i = 0; i < tabs.length; i++) { tabs[i].classList.remove('active'); } document.getElementById(tabId).classList.add('active'); document.getElementById('tab-' + tabId).classList.add('active'); } // Render inbox function renderInbox() { document.getElementById('inbox-count').textContent = '(' + items.length + ')'; var list = document.getElementById('inbox-list'); var empty = document.getElementById('inbox-empty'); if (items.length === 0) { list.innerHTML = ''; empty.style.display = 'block'; } else { empty.style.display = 'none'; var html = ''; for (var i = 0; i < items.length; i++) { html += '
' + '
@' + (items[i].author || 'unknown') + '
' + '
' + ((items[i].content || 'No content').substring(0, 60)) + '
' + '' + '
'; } list.innerHTML = html; // Add delete handlers var deleteBtns = list.querySelectorAll('.delete-btn'); for (var i = 0; i < deleteBtns.length; i++) { deleteBtns[i].addEventListener('click', function() { var idx = parseInt(this.getAttribute('data-index')); items.splice(idx, 1); saveItems(); renderInbox(); }); } } } // Test add item function testAddItem() { items.unshift({ id: Date.now(), author: 'TestUser', content: 'Test item saved!', time: new Date().toISOString() }); saveItems(); renderInbox(); } // Render lists function renderLists() { var container = document.getElementById('lists-container'); var html = ''; for (var i = 0; i < lists.length; i++) { html += '
' + '' + lists[i].name + ' (' + lists[i].contacts.length + ')' + '' + '
'; } container.innerHTML = html; // Add delete handlers var deleteBtns = container.querySelectorAll('.delete-btn'); for (var i = 0; i < deleteBtns.length; i++) { deleteBtns[i].addEventListener('click', function() { var idx = parseInt(this.getAttribute('data-list-index')); lists.splice(idx, 1); chrome.storage.local.set({ hookd_lists: lists }); renderLists(); }); } } // Create list function createList() { var input = document.getElementById('new-list-name'); var name = input.value.trim(); if (!name) return; lists.push({ id: String(Date.now()), name: name, contacts: [] }); chrome.storage.local.set({ hookd_lists: lists }); input.value = ''; renderLists(); } // Load handle function loadHandle() { chrome.storage.local.get(['hookd_handle'], function(result) { if (result.hookd_handle) { document.getElementById('setting-handle').value = result.hookd_handle; } }); } // Save handle function saveHandle() { var handle = document.getElementById('setting-handle').value.trim(); if (!handle) return; chrome.storage.local.set({ hookd_handle: handle }); alert('Saved: ' + handle); } // Clear all function clearAll() { if (!confirm('Delete ALL data?')) return; items = []; lists = [ { id: '1', name: 'Dev Friends', contacts: [] }, { id: '2', name: 'Meme Buddies', contacts: [] }, { id: '3', name: 'Business', contacts: [] } ]; chrome.storage.local.set({ hookd_items: [], hookd_lists: lists }); renderAll(); alert('All data cleared'); } // Setup document.addEventListener('DOMContentLoaded', function() { // Tab clicks document.getElementById('tab-inbox').addEventListener('click', function() { switchTab('inbox'); }); document.getElementById('tab-lists').addEventListener('click', function() { switchTab('lists'); }); document.getElementById('tab-settings').addEventListener('click', function() { switchTab('settings'); }); // Buttons document.getElementById('btn-test-add').addEventListener('click', testAddItem); document.getElementById('btn-create-list').addEventListener('click', createList); document.getElementById('btn-save-handle').addEventListener('click', saveHandle); document.getElementById('btn-clear-all').addEventListener('click', clearAll); // Load data loadData(); });