Add flowPool and buildFlow functionality

This commit is contained in:
anovazzi1 2024-01-23 16:07:18 -03:00
commit fbc926a436
2 changed files with 14 additions and 4 deletions

View file

@ -30,6 +30,8 @@ export default function GenericNode({
}): JSX.Element { }): JSX.Element {
const types = useTypesStore((state) => state.types); const types = useTypesStore((state) => state.types);
const deleteNode = useFlowStore((state) => state.deleteNode); const deleteNode = useFlowStore((state) => state.deleteNode);
const flowPool = useFlowStore((state) => state.flowPool);
const buildFlow = useFlowStore((state) => state.buildFlow);
const setNode = useFlowStore((state) => state.setNode); const setNode = useFlowStore((state) => state.setNode);
const name = nodeIconsLucide[data.type] ? data.type : types[data.type]; const name = nodeIconsLucide[data.type] ? data.type : types[data.type];
const [inputName, setInputName] = useState(false); const [inputName, setInputName] = useState(false);
@ -92,16 +94,18 @@ export default function GenericNode({
setNodeName(data.node!.display_name); setNodeName(data.node!.display_name);
}, [data.node!.display_name]); }, [data.node!.display_name]);
// New useEffect to watch for changes in sseData and update validation status
useEffect(() => { useEffect(() => {
const relevantData = sseData[data.id]; const relevantData =
flowPool[data.id] && flowPool[data.id]?.length > 0
? flowPool[data.id][flowPool[data.id].length - 1]
: null;
if (relevantData) { if (relevantData) {
// Extract validation information from relevantData and update the validationStatus state // Extract validation information from relevantData and update the validationStatus state
setValidationStatus(relevantData); setValidationStatus(relevantData);
} else { } else {
setValidationStatus(null); setValidationStatus(null);
} }
}, [sseData, data.id]); }, [flowPool, data.id]);
const showNode = data.showNode ?? true; const showNode = data.showNode ?? true;
@ -317,7 +321,10 @@ export default function GenericNode({
</div> </div>
{showNode && ( {showNode && (
<div className="round-button-div"> <div
className="round-button-div"
onClick={() => buildFlow(data.id)}
>
<div> <div>
<Tooltip <Tooltip
title={ title={

View file

@ -24,6 +24,8 @@ export type FlowPoolObjectType = {
valid: boolean; valid: boolean;
params: any; params: any;
data: { artifacts: any; results: any | ChatOutputType | chatInputType }; data: { artifacts: any; results: any | ChatOutputType | chatInputType };
duration: string;
progress: number;
id: string; id: string;
}; };
@ -85,4 +87,5 @@ export type FlowStoreType = {
getFilterEdge: any[]; getFilterEdge: any[];
onConnect: (connection: Connection) => void; onConnect: (connection: Connection) => void;
unselectAll: () => void; unselectAll: () => void;
buildFlow: (nodeId?: string) => void;
}; };