diff --git a/web/app/components/rag-pipeline/index.tsx b/web/app/components/rag-pipeline/index.tsx index 93a6f7462a..7a1991e743 100644 --- a/web/app/components/rag-pipeline/index.tsx +++ b/web/app/components/rag-pipeline/index.tsx @@ -5,11 +5,15 @@ import Panel from '@/app/components/workflow/panel' import { WorkflowContextProvider, } from '@/app/components/workflow/context' +import type { InjectWorkflowStoreSliceFn } from '@/app/components/workflow/store' import RagPipelineHeader from './components/rag-pipeline-header' +import { createRagPipelineSliceSlice } from './store' const RagPipeline = () => { return ( - + void +} + +export type CreateRagPipelineSliceSlice = StateCreator +export const createRagPipelineSliceSlice: StateCreator = set => ({ + showInputFieldDialog: false, + setShowInputFieldDialog: showInputFieldDialog => set(() => ({ showInputFieldDialog })), +}) diff --git a/web/app/components/workflow/context.tsx b/web/app/components/workflow/context.tsx index cae14fc2b2..0b77239dd1 100644 --- a/web/app/components/workflow/context.tsx +++ b/web/app/components/workflow/context.tsx @@ -2,18 +2,18 @@ import { createContext, useRef, } from 'react' +import type { SliceFromInjection } from './store' import { createWorkflowStore, } from './store' import type { StateCreator } from 'zustand' -import type { WorkflowSliceShape } from '@/app/components/workflow-app/store/workflow/workflow-slice' type WorkflowStore = ReturnType export const WorkflowContext = createContext(null) export type WorkflowProviderProps = { children: React.ReactNode - injectWorkflowStoreSliceFn?: StateCreator + injectWorkflowStoreSliceFn?: StateCreator } export const WorkflowContextProvider = ({ children, injectWorkflowStoreSliceFn }: WorkflowProviderProps) => { const storeRef = useRef(undefined) diff --git a/web/app/components/workflow/store/workflow/index.ts b/web/app/components/workflow/store/workflow/index.ts index 0e2f5eb0f7..e7d476db28 100644 --- a/web/app/components/workflow/store/workflow/index.ts +++ b/web/app/components/workflow/store/workflow/index.ts @@ -30,6 +30,11 @@ import type { WorkflowSliceShape } from './workflow-slice' import { createWorkflowSlice } from './workflow-slice' import { WorkflowContext } from '@/app/components/workflow/context' import type { WorkflowSliceShape as WorkflowAppSliceShape } from '@/app/components/workflow-app/store/workflow/workflow-slice' +import type { RagPipelineSliceShape } from '@/app/components/rag-pipeline/store' + +export type SliceFromInjection = + Partial & + Partial export type Shape = ChatVariableSliceShape & @@ -43,10 +48,12 @@ export type Shape = VersionSliceShape & WorkflowDraftSliceShape & WorkflowSliceShape & - WorkflowAppSliceShape + SliceFromInjection + +export type InjectWorkflowStoreSliceFn = StateCreator type CreateWorkflowStoreParams = { - injectWorkflowStoreSliceFn?: StateCreator + injectWorkflowStoreSliceFn?: InjectWorkflowStoreSliceFn } export const createWorkflowStore = (params: CreateWorkflowStoreParams) => { @@ -64,7 +71,7 @@ export const createWorkflowStore = (params: CreateWorkflowStoreParams) => { ...createVersionSlice(...args), ...createWorkflowDraftSlice(...args), ...createWorkflowSlice(...args), - ...(injectWorkflowStoreSliceFn?.(...args) || {} as WorkflowAppSliceShape), + ...(injectWorkflowStoreSliceFn?.(...args) || {} as (SliceFromInjection)), })) }