import { createStore } from 'vuex'
// import { ActionContext } from 'vuex'
import type { App } from 'vue'


// 定义 RootState 接口（可扩展）
interface RootState {
  count: number,
  managerHorizontalMenuItems:any[],
  subjectQuestionnaireTitle:string
}



// type StoreActionContext = ActionContext<RootState, RootState>
// 创建 store 实例
const store = createStore<RootState>({
  state: () => ({
    count: 0,
    // 管理员 评教评学 的访问菜单
    managerHorizontalMenuItems:[],
    // 科目问卷标题（科目）
    subjectQuestionnaireTitle:''
  }),
  mutations: {
    increment(state: RootState) {
      state.count++
    },
    // 更新科目问卷标题
    updateSubjectQuestionnaireTitle(state:RootState,newVal){
      state.subjectQuestionnaireTitle = newVal
    }
  },
  actions: {
    increment({ commit }) {
      commit('increment')
    },
  },
  getters: {
    count: (state: RootState) => state.count,
    getDemo:(state)=>()=>{
      return  state.managerHorizontalMenuItems.map(item=>{
          return item
      })
    },
  }
})

// 提供一个方法用于注册到 Vue 应用中
export function setupStore(app: App) {
  app.use(store)
}

export default store