From 016101d92722a09b345d8a1d1ab2c7ff1903452d Mon Sep 17 00:00:00 2001 From: nicosammito Date: Sun, 28 Jun 2026 20:33:59 +0200 Subject: [PATCH] fix: SubFlowValue from NodeFunction doesn't save --- .../DataTypeSubFlowInputComponent.tsx | 12 ++++++------ .../files/FunctionFileDefaultComponent.tsx | 19 ++++++++++++++----- .../files/FunctionFilesComponent.tsx | 2 +- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/packages/ce/src/datatype/components/inputs/sub-flow/DataTypeSubFlowInputComponent.tsx b/src/packages/ce/src/datatype/components/inputs/sub-flow/DataTypeSubFlowInputComponent.tsx index ac177001..970243d1 100644 --- a/src/packages/ce/src/datatype/components/inputs/sub-flow/DataTypeSubFlowInputComponent.tsx +++ b/src/packages/ce/src/datatype/components/inputs/sub-flow/DataTypeSubFlowInputComponent.tsx @@ -6,7 +6,7 @@ import lodash from "lodash" import {useFunctionSuggestions} from "@edition/function/hooks/Function.suggestion.hook"; import {DataTypeInputValueComponent} from "@edition/datatype/components/inputs/DataTypeInputValueComponent"; import {SuggestionDialogComponent} from "@edition/function/components/suggestion/SuggestionDialogComponent"; -import {Flow, LiteralValue, NodeFunction, ReferenceValue, SubFlowValue} from "@code0-tech/sagittarius-graphql-types"; +import {Flow, LiteralValue, ReferenceValue, SubFlowValue} from "@code0-tech/sagittarius-graphql-types"; import {FlowService} from "@edition/flow/services/Flow.service"; import {useParams} from "next/navigation"; @@ -31,11 +31,11 @@ export const DataTypeSubFlowInputComponent: React.FC { + const onChangeDebounced = useDebouncedCallback((value: LiteralValue | SubFlowValue | ReferenceValue | null) => { onChange?.(value ?? null) }, 200) - return React.useMemo(() => <> + return <> { @@ -47,7 +47,7 @@ export const DataTypeSubFlowInputComponent: React.FC {title} @@ -69,11 +69,11 @@ export const DataTypeSubFlowInputComponent: React.FC Select next node - , [formValidation, defaultValue, suggestionDialogOpen]) + } \ No newline at end of file diff --git a/src/packages/ce/src/function/components/files/FunctionFileDefaultComponent.tsx b/src/packages/ce/src/function/components/files/FunctionFileDefaultComponent.tsx index 22634772..aa7a3912 100644 --- a/src/packages/ce/src/function/components/files/FunctionFileDefaultComponent.tsx +++ b/src/packages/ce/src/function/components/files/FunctionFileDefaultComponent.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {Alert, Spacing, Text, useForm, useService} from "@code0-tech/pictor"; +import {Alert, Spacing, Text, useForm, useService, useStore} from "@code0-tech/pictor"; import { Flow, LiteralValue, @@ -10,6 +10,7 @@ import { } from "@code0-tech/sagittarius-graphql-types"; import {useFlowValidation} from "@edition/flow/hooks/Flow.validation.hook"; import {FlowService} from "@edition/flow/services/Flow.service"; +import {FunctionService} from "@edition/function/services/Function.service"; import {DataTypeInputComponent} from "@edition/datatype/components/inputs/DataTypeInputComponent"; import { FALLBACK_FUNCTION_DESCRIPTION, @@ -21,21 +22,29 @@ import {useNodes} from "@xyflow/react"; import {NodeSchema} from "@code0-tech/triangulum"; export interface FunctionFileDefaultComponentProps { - node: NodeFunction + nodeId: NodeFunction['id'] flowId: Flow['id'] } export const FunctionFileDefaultComponent: React.FC = (props) => { - const {node, flowId} = props + const {nodeId, flowId} = props const flowService = useService(FlowService) + const flowStore = useStore(FlowService) + const functionService = useService(FunctionService) + const functionStore = useStore(FunctionService) const validation = useFlowValidation(flowId) const changedParameter = React.useRef>(new Set()) + const node = React.useMemo( + () => flowService.getNodeById(flowId, nodeId)!, + [flowService, flowStore, flowId, nodeId] + ) + const definition = React.useMemo( - () => node.functionDefinition!, - [node.functionDefinition] + () => functionService.getById(node?.functionDefinition?.id!)!, + [functionService, functionStore, node?.functionDefinition?.id] ) const initialValues = React.useMemo(() => { diff --git a/src/packages/ce/src/function/components/files/FunctionFilesComponent.tsx b/src/packages/ce/src/function/components/files/FunctionFilesComponent.tsx index 94615978..7c31ecb4 100644 --- a/src/packages/ce/src/function/components/files/FunctionFilesComponent.tsx +++ b/src/packages/ce/src/function/components/files/FunctionFilesComponent.tsx @@ -184,7 +184,7 @@ export const FunctionFilesComponent: React.FC = (pr h={"100%"} value={node?.id!} key={node?.id!}> - + }) }