'use client';

import { create } from 'zustand';

export type Language = 'es' | 'en';

export interface LangState {
  lang: Language;
  setLang: (lang: Language) => void;
  toggle: () => void;
}

function getInitialLang(): Language {
  if (typeof window !== 'undefined') {
    try {
      const stored = localStorage.getItem('divisi-lang');
      if (stored === 'es' || stored === 'en') return stored;
    } catch { /* */ }
  }
  return 'es';
}

export const useLangStore = create<LangState>()((set) => ({
  lang: getInitialLang(),
  setLang: (lang) => {
    if (typeof window !== 'undefined') {
      try { localStorage.setItem('divisi-lang', lang); } catch { /* */ }
    }
    set({ lang });
  },
  toggle: () => set((state) => {
    const next = state.lang === 'es' ? 'en' : 'es';
    if (typeof window !== 'undefined') {
      try { localStorage.setItem('divisi-lang', next); } catch { /* */ }
    }
    return { lang: next };
  }),
}));
