mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-24 05:28:43 +08:00

Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: Hash Brown <hi@xzd.me> Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: GareArc <chen4851@purdue.edu> Co-authored-by: Byron.wang <byron@dify.ai> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: -LAN- <laipz8200@outlook.com> Co-authored-by: Garfield Dai <dai.hai@foxmail.com> Co-authored-by: KVOJJJin <jzongcode@gmail.com> Co-authored-by: Alexi.F <654973939@qq.com> Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com> Co-authored-by: kautsar_masuara <61046989+izon-masuara@users.noreply.github.com> Co-authored-by: achmad-kautsar <achmad.kautsar@insignia.co.id> Co-authored-by: Xin Zhang <sjhpzx@gmail.com> Co-authored-by: kelvintsim <83445753+kelvintsim@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Zixuan Cheng <61724187+Theysua@users.noreply.github.com>
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import { create } from 'zustand'
|
|
import type { AccessControlAccount, AccessControlGroup } from '@/models/access-control'
|
|
import { AccessMode } from '@/models/access-control'
|
|
import type { App } from '@/types/app'
|
|
|
|
type AccessControlStore = {
|
|
appId: App['id']
|
|
setAppId: (appId: App['id']) => void
|
|
specificGroups: AccessControlGroup[]
|
|
setSpecificGroups: (specificGroups: AccessControlGroup[]) => void
|
|
specificMembers: AccessControlAccount[]
|
|
setSpecificMembers: (specificMembers: AccessControlAccount[]) => void
|
|
currentMenu: AccessMode
|
|
setCurrentMenu: (currentMenu: AccessMode) => void
|
|
selectedGroupsForBreadcrumb: AccessControlGroup[]
|
|
setSelectedGroupsForBreadcrumb: (selectedGroupsForBreadcrumb: AccessControlGroup[]) => void
|
|
}
|
|
|
|
const useAccessControlStore = create<AccessControlStore>((set) => {
|
|
return {
|
|
appId: '',
|
|
setAppId: appId => set({ appId }),
|
|
specificGroups: [],
|
|
setSpecificGroups: specificGroups => set({ specificGroups }),
|
|
specificMembers: [],
|
|
setSpecificMembers: specificMembers => set({ specificMembers }),
|
|
currentMenu: AccessMode.SPECIFIC_GROUPS_MEMBERS,
|
|
setCurrentMenu: currentMenu => set({ currentMenu }),
|
|
selectedGroupsForBreadcrumb: [],
|
|
setSelectedGroupsForBreadcrumb: selectedGroupsForBreadcrumb => set({ selectedGroupsForBreadcrumb }),
|
|
}
|
|
})
|
|
|
|
export default useAccessControlStore
|