// Top navigation behaviors: logout + theme toggle (persisted to
// localStorage immediately and to the profile when logged in).
import { api, toast } from '/static/js/api.js';

const logoutBtn = document.getElementById('nav-logout');
if (logoutBtn) {
  logoutBtn.addEventListener('click', async () => {
    try {
      await api('POST', '/api/v1/auth/logout', {});
    } catch (e) { /* session may already be gone */ }
    window.location.href = '/login';
  });
}

const themeBtn = document.getElementById('nav-theme');
if (themeBtn) {
  themeBtn.addEventListener('click', async () => {
    const el = document.documentElement;
    const themes = (el.dataset.themes || 'light,dark').split(',');
    const cur = themes.indexOf(el.dataset.theme);
    const next = themes[(cur + 1) % themes.length];
    el.dataset.theme = next;
    try { localStorage.setItem('theme', next); } catch (e) { /* ignore */ }
    toast('Theme: ' + next);
    if (document.body.dataset.loggedIn === '1') {
      try {
        await api('PATCH', '/api/v1/profile', { settings: { theme: next } });
      } catch (e) {
        toast('Could not save theme preference: ' + e.message, 'err');
      }
    }
  });
}
