import { useContext, useState } from "react"; import CodeAreaComponent from "../../../../components/codeAreaComponent"; import DictComponent from "../../../../components/dictComponent"; import Dropdown from "../../../../components/dropdownComponent"; import FloatComponent from "../../../../components/floatComponent"; import InputComponent from "../../../../components/inputComponent"; import InputFileComponent from "../../../../components/inputFileComponent"; import InputListComponent from "../../../../components/inputListComponent"; import IntComponent from "../../../../components/intComponent"; import KeypairListComponent from "../../../../components/keypairListComponent"; import PromptAreaComponent from "../../../../components/promptComponent"; import TextAreaComponent from "../../../../components/textAreaComponent"; import ToggleShadComponent from "../../../../components/toggleShadComponent"; import { TabsContext } from "../../../../contexts/tabsContext"; import { typesContext } from "../../../../contexts/typesContext"; import CollectionNameComponent from "../../../../pages/FlowPage/components/CollectionNameComponent"; import { cleanEdges, convertObjToArray, convertValuesToNumbers, hasDuplicateKeys } from "../../../../util/reactflowUtils"; export default function L2ParameterComponent({ // id, data, type, name = "", }) { const { reactFlowInstance } = useContext(typesContext); // let disabled = reactFlowInstance?.getEdges().some((e) => e.targetHandle === id) ?? false; let disabled = false const [errorDuplicateKey, setErrorDuplicateKey] = useState(false); const { setTabsState, flow } = useContext(TabsContext); const handleOnNewValue = (newValue: any) => { data.node.template[name].value = ['float', 'int'].includes(type) ? Number(newValue) : newValue; // Set state to pending setTabsState((prev) => { return { ...prev, [flow.id]: { ...prev[flow.id], isPending: true, }, }; }); }; // 临时处理知识库保存方法, 类似方法多了需要抽象 const handleOnNewLibValue = (newValue: string, collectionId: number | '') => { data.node.template[name].value = newValue; data.node.template[name].collection_id = collectionId; // Set state to pending setTabsState((prev) => { return { ...prev, [flow.id]: { ...prev[flow.id], isPending: true, }, }; }); }; return