import { create } from "zustand";
import { persist, createJSONStorage } from "zustand/middleware";
import { CountryList, LanguageList } from "@/components/home/home.type";

interface SettingsState {
  language: LanguageList | null;
  country: CountryList | null;
  isSocialOpen: boolean;
  isLogOutOpen: boolean;
  setLanguage: (language: LanguageList) => void;
  setCountry: (country: CountryList) => void;
  setIsSocialOpen: (value: boolean) => void;
  setIsLogOutOpen: (value: boolean) => void;
}

export const useSettingsStore = create<SettingsState>()(
  persist(
    (set) => ({
      language: null,
      country: null,
      isSocialOpen: false,
      isLogOutOpen: false,
      setLanguage: (language) => set({ language }),
      setCountry: (country) => set({ country }),
      setIsSocialOpen: (value) => set({ isSocialOpen: value }),
      setIsLogOutOpen: (value) => set({ isLogOutOpen: value }),
    }),
    {
      name: "settings-storage",
      storage: createJSONStorage(() => localStorage),
    }
  )
);
