import piniaPersistConfig from '@/stores/helper/persist'
import { GlobalState } from '@/stores/typings/globalType'

export const useGlobalStore = defineStore({
  id: 'global',
  // 修改默认值之后，需清除 localStorage 数据
  state: (): GlobalState => ({
    // 布局模式 (纵向：vertical | 横向：transverse | 分栏：columns)
    layout: import.meta.env.VITE_GLOBAL_LAYOUT,
    // element 组件大小('large' | 'default' | 'small')
    assemblySize: import.meta.env.VITE_GLOBAL_ASSEMBLY_SIZE,
    // 当前页面是否全屏
    maximize: import.meta.env.VITE_GLOBAL_MAXIMIZE === 'true',
    // 主题颜色
    primary: import.meta.env.VITE_GLOBAL_PRIMARY,
    // 深色模式
    isDark: import.meta.env.VITE_GLOBAL_IS_DARK === 'true',
    // 灰色模式
    isGrey: import.meta.env.VITE_GLOBAL_IS_GREY === 'true',
    // 色弱模式
    isWeak: import.meta.env.VITE_GLOBAL_IS_WEAK === 'true',
    // 侧边栏反转
    asideInverted: import.meta.env.VITE_GLOBAL_ASIDE_INVERTED === 'true',
    // 头部反转
    headerInverted: import.meta.env.VITE_GLOBAL_HEADER_INVERTED === 'true',
    // 折叠菜单
    isCollapse: import.meta.env.VITE_GLOBAL_IS_COLLAPSE === 'true',
    // 菜单手风琴
    accordion: import.meta.env.VITE_GLOBAL_ACCORDION === 'true',
    // 面包屑导航
    breadcrumb: import.meta.env.VITE_GLOBAL_BREADCRUMB === 'true',
    // 标签页
    tabs: import.meta.env.VITE_GLOBAL_TABS === 'true',
    // 页脚
    footer: import.meta.env.VITE_GLOBAL_FOOTER === 'true'
  }),
  getters: {},
  actions: {
    // Set GlobalState
    setGlobalState(key: string, val: any) {
      this.$patch({ [key]: val })
    }
  },
  persist: piniaPersistConfig('global')
})
