mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-04 12:53:38 +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
 |