useHeader.ts 661 B

1234567891011121314151617181920212223242526272829
  1. import { defineStore } from 'pinia'
  2. import { ref, watch } from 'vue'
  3. import { useRouter } from 'vue-router'
  4. import { useLogger } from '@/composables/useLogger'
  5. interface MenuRoute {
  6. name: string
  7. icon: string
  8. action: () => void
  9. }
  10. export const useHeader = defineStore('useHeader', () => {
  11. const log = useLogger('headerStore')
  12. const menu = ref<[] | MenuRoute[]>([])
  13. const router = useRouter()
  14. function setAdditionalMenu(params: MenuRoute[]) {
  15. setTimeout(() => {
  16. log.info(params)
  17. menu.value = params
  18. }, 300)
  19. }
  20. watch(() => router.currentRoute.value, () => {
  21. menu.value = []
  22. })
  23. return { menu, setAdditionalMenu }
  24. })