| | |
| | | createContext, |
| | | useRef, |
| | | } from 'react' |
| | | import { |
| | | createWorkflowStore, |
| | | } from './store' |
| | | import type { StateCreator } from 'zustand' |
| | | import type { WorkflowSliceShape } from '@/app/components/workflow-app/store/workflow/workflow-slice' |
| | | import { createWorkflowStore } from './store' |
| | | |
| | | type WorkflowStore = ReturnType<typeof createWorkflowStore> |
| | | export const WorkflowContext = createContext<WorkflowStore | null>(null) |
| | | |
| | | export type WorkflowProviderProps = { |
| | | type WorkflowProviderProps = { |
| | | children: React.ReactNode |
| | | injectWorkflowStoreSliceFn?: StateCreator<WorkflowSliceShape> |
| | | } |
| | | export const WorkflowContextProvider = ({ children, injectWorkflowStoreSliceFn }: WorkflowProviderProps) => { |
| | | const storeRef = useRef<WorkflowStore | undefined>(undefined) |
| | | export const WorkflowContextProvider = ({ children }: WorkflowProviderProps) => { |
| | | const storeRef = useRef<WorkflowStore>() |
| | | |
| | | if (!storeRef.current) |
| | | storeRef.current = createWorkflowStore({ injectWorkflowStoreSliceFn }) |
| | | storeRef.current = createWorkflowStore() |
| | | |
| | | return ( |
| | | <WorkflowContext.Provider value={storeRef.current}> |