// ~/store/language.ts
import { defineStore } from "pinia";

export interface LanguageState {
    langIcon: string;
    langLangauge: string;
    isActive: boolean;
}

export interface ChangeLangPayload {
    code: string;
    icon?: string;
}

export const useLanguageStore = defineStore("language", {
    state: (): LanguageState => ({
        langIcon: "",
        langLangauge: "en",
        isActive: false,
    }),

    getters: {
        langIcon1: (state): string => state.langIcon,
        langLangauge1: (state): string => state.langLangauge,
    },

    actions: {
        changeLang(payload: ChangeLangPayload) {
            if (process.client) {
                localStorage.setItem("currentLanguage", payload.code);
                if (payload.icon) {
                    localStorage.setItem("currentLanguageIcon", payload.icon);
                }
            }

            this.langIcon = payload.icon ?? "flag-icon-us";
            this.langLangauge = payload.code ?? "en";
        },

        change() {
            this.isActive = !this.isActive;
        },
    },
});
