import { defineStore } from 'pinia' import { ref } from 'vue' import { getFirstMenuPath } from '@/utils' import { HOME_PAGE_PATH } from '@/router' const useMenuStore = defineStore('menuStore', () => { const homePath = ref(HOME_PAGE_PATH) const menuList = ref([]) const menuWidth = ref('') const removeRouteFns = ref([]) const setMenuList = (list) => { menuList.value = list setHomePath(HOME_PAGE_PATH || getFirstMenuPath(list)) } const getHomePath = () => homePath.value const setHomePath = (path) => { homePath.value = path } const addRemoveRouteFns = (fns) => { removeRouteFns.value.push(...fns) } const removeAllDynamicRoutes = () => { removeRouteFns.value.forEach((fn) => fn()) removeRouteFns.value = [] } const clearRemoveRouteFns = () => { removeRouteFns.value = [] } return { menuList, menuWidth, removeRouteFns, setMenuList, getHomePath, setHomePath, addRemoveRouteFns, removeAllDynamicRoutes, clearRemoveRouteFns } }) export { useMenuStore }