mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			842 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			842 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 'use client'
 | |
| 
 | |
| import { createContext, useContext } from 'use-context-selector'
 | |
| import useSWR from 'swr'
 | |
| import { fetchWorkspaces } from '@/service/common'
 | |
| import type { IWorkspace } from '@/models/common'
 | |
| 
 | |
| export type WorkspacesContextValue = {
 | |
|   workspaces: IWorkspace[]
 | |
| }
 | |
| 
 | |
| const WorkspacesContext = createContext<WorkspacesContextValue>({
 | |
|   workspaces: [],
 | |
| })
 | |
| 
 | |
| type IWorkspaceProviderProps = {
 | |
|   children: React.ReactNode
 | |
| }
 | |
| 
 | |
| export const WorkspaceProvider = ({
 | |
|   children,
 | |
| }: IWorkspaceProviderProps) => {
 | |
|   const { data } = useSWR({ url: '/workspaces' }, fetchWorkspaces)
 | |
| 
 | |
|   return (
 | |
|     <WorkspacesContext.Provider value={{
 | |
|       workspaces: data?.workspaces || [],
 | |
|     }}>
 | |
|       {children}
 | |
|     </WorkspacesContext.Provider>
 | |
|   )
 | |
| }
 | |
| 
 | |
| export const useWorkspacesContext = () => useContext(WorkspacesContext)
 | |
| 
 | |
| export default WorkspacesContext
 |