Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

access-control-store.ts 1.3KB

12345678910111213141516171819202122232425262728293031323334
  1. import { create } from 'zustand'
  2. import type { AccessControlAccount, AccessControlGroup } from '@/models/access-control'
  3. import { AccessMode } from '@/models/access-control'
  4. import type { App } from '@/types/app'
  5. type AccessControlStore = {
  6. appId: App['id']
  7. setAppId: (appId: App['id']) => void
  8. specificGroups: AccessControlGroup[]
  9. setSpecificGroups: (specificGroups: AccessControlGroup[]) => void
  10. specificMembers: AccessControlAccount[]
  11. setSpecificMembers: (specificMembers: AccessControlAccount[]) => void
  12. currentMenu: AccessMode
  13. setCurrentMenu: (currentMenu: AccessMode) => void
  14. selectedGroupsForBreadcrumb: AccessControlGroup[]
  15. setSelectedGroupsForBreadcrumb: (selectedGroupsForBreadcrumb: AccessControlGroup[]) => void
  16. }
  17. const useAccessControlStore = create<AccessControlStore>((set) => {
  18. return {
  19. appId: '',
  20. setAppId: appId => set({ appId }),
  21. specificGroups: [],
  22. setSpecificGroups: specificGroups => set({ specificGroups }),
  23. specificMembers: [],
  24. setSpecificMembers: specificMembers => set({ specificMembers }),
  25. currentMenu: AccessMode.SPECIFIC_GROUPS_MEMBERS,
  26. setCurrentMenu: currentMenu => set({ currentMenu }),
  27. selectedGroupsForBreadcrumb: [],
  28. setSelectedGroupsForBreadcrumb: selectedGroupsForBreadcrumb => set({ selectedGroupsForBreadcrumb }),
  29. }
  30. })
  31. export default useAccessControlStore