// Popup script for Nano Banana Cookie Sync
document.addEventListener('DOMContentLoaded', async () => {
const syncBtn = document.getElementById('sync-btn');
const psidStatus = document.getElementById('psid-status');
const psidtsStatus = document.getElementById('psidts-status');
// Get current status
async function updateStatus() {
try {
const response = await chrome.runtime.sendMessage({ action: 'getStatus' });
if (response.lastSynced['__Secure-1PSID']) {
psidStatus.textContent = 'synced';
psidStatus.className = 'value synced';
} else {
psidStatus.textContent = 'not synced';
psidStatus.className = 'value not-synced';
}
if (response.lastSynced['__Secure-1PSIDTS']) {
psidtsStatus.textContent = 'synced';
psidtsStatus.className = 'value synced';
} else {
psidtsStatus.textContent = 'not synced';
psidtsStatus.className = 'value not-synced';
}
} catch (error) {
console.error('Failed to get status:', error);
}
}
// Sync button click handler
syncBtn.addEventListener('click', async () => {
syncBtn.disabled = true;
syncBtn.textContent = 'Syncing...';
try {
const response = await chrome.runtime.sendMessage({ action: 'syncNow' });
if (response.success) {
syncBtn.textContent = '✓ Synced!';
await updateStatus();
} else {
syncBtn.textContent = '✗ Failed';
}
} catch (error) {
syncBtn.textContent = '✗ Error';
console.error('Sync failed:', error);
}
setTimeout(() => {
syncBtn.disabled = false;
syncBtn.textContent = '🔄 Sync Now';
}, 2000);
});
// Initial status check
await updateStatus();
});