123456789101112131415161718192021222324252627282930313233343536 |
- '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
|