Skip to content
Snippets Groups Projects
Commit 6ad6cd11 authored by sanjaycal's avatar sanjaycal
Browse files

Merge branch 'workflow' of https://github.com/transformerlab/transformerlab-app into workflow

parents 1442476e 772a34e9
No related branches found
No related tags found
No related merge requests found
import { Background, ControlButton, Controls, ReactFlow } from '@xyflow/react';
import React from 'react';
function generateNodes(workflow: any) {
let out: any[] = [];
let currentTask = '0';
let position = 0;
const workflowConfig = JSON.parse(workflow?.config);
console.log(workflowConfig);
while (currentTask < workflowConfig.nodes.length) {
out.push({
id: currentTask,
position: { x: 0, y: position },
data: { label: workflowConfig.nodes[currentTask].name },
});
position += 100;
currentTask = workflowConfig.nodes[currentTask].out;
}
return out;
}
function generateEdges(workflow: any) {
let out: any[] = [];
let currentTask = '0';
let ids = '0';
const workflowConfig = JSON.parse(workflow?.config);
console.log(workflowConfig);
while (currentTask < workflowConfig.nodes.length) {
out.push({
id: ids,
source: currentTask,
target: workflowConfig.nodes[currentTask].out,
markerEnd: {
type: 'arrow',
},
});
ids += 1;
currentTask = workflowConfig.nodes[currentTask].out;
}
return out;
}
export default function WorkflowCanvas({ selectedWorkflow }) {
return (
<ReactFlow
nodes={generateNodes(selectedWorkflow)}
edges={generateEdges(selectedWorkflow)}
fitView
style={{ backgroundColor: '#F7F9FB' }}
>
<Background color="#96ADE9" />
<Controls>
<ControlButton
onClick={() => {
alert('hi');
}}
>
*
</ControlButton>
</Controls>
</ReactFlow>
);
}
import {
Box,
Button,
Divider,
List,
ListItem,
ListItemButton,
......@@ -9,7 +10,6 @@ import {
Sheet,
Typography,
} from '@mui/joy';
import { Background, ControlButton, Controls, ReactFlow } from '@xyflow/react';
import '@xyflow/react/dist/style.css';
import { PlayIcon, PlusCircleIcon, PlusIcon, WorkflowIcon } from 'lucide-react';
......@@ -19,6 +19,7 @@ import * as chatAPI from '../../../lib/transformerlab-api-sdk';
import useSWR from 'swr';
import NewWorkflowModal from './NewWorkflowModal';
import NewNodeModal from './NewNodeModal';
import WorkflowCanvas from './WorkflowCanvas';
const fetcher = (url: any) => fetch(url).then((res) => res.json());
......@@ -36,51 +37,6 @@ export default function Workflows({ experimentInfo }) {
const workflows = workflowsData;
function generateNodes(workflow: any) {
let out: any[] = [];
let currentTask = '0';
let position = 0;
const workflowConfig = JSON.parse(workflow?.config);
console.log(workflowConfig);
while (currentTask < workflowConfig.nodes.length) {
out.push({
id: currentTask,
position: { x: 0, y: position },
data: { label: workflowConfig.nodes[currentTask].name },
});
position += 100;
currentTask = workflowConfig.nodes[currentTask].out;
}
return out;
}
function generateEdges(workflow: any) {
let out: any[] = [];
let currentTask = '0';
let ids = '0';
const workflowConfig = JSON.parse(workflow?.config);
console.log(workflowConfig);
while (currentTask < workflowConfig.nodes.length) {
out.push({
id: ids,
source: currentTask,
target: workflowConfig.nodes[currentTask].out,
markerEnd: {
type: 'arrow',
},
});
ids += 1;
currentTask = workflowConfig.nodes[currentTask].out;
}
return out;
}
async function runWorkflow(workflowId: string) {
await fetch(chatAPI.Endpoints.Workflows.RunWorkflow(workflowId));
}
......@@ -144,6 +100,7 @@ export default function Workflows({ experimentInfo }) {
</ListItemButton>
</ListItem>
))}
<Divider />
<ListItem>
<ListItemButton onClick={() => setNewWorkflowModalOpen(true)}>
<ListItemDecorator>
......@@ -170,23 +127,7 @@ export default function Workflows({ experimentInfo }) {
}}
>
{selectedWorkflow ? (
<ReactFlow
nodes={generateNodes(selectedWorkflow)}
edges={generateEdges(selectedWorkflow)}
fitView
style={{ backgroundColor: '#F7F9FB' }}
>
<Background color="#96ADE9" />
<Controls>
<ControlButton
onClick={() => {
alert('hi');
}}
>
*
</ControlButton>
</Controls>
</ReactFlow>
<WorkflowCanvas selectedWorkflow={selectedWorkflow} />
) : (
<Box sx={{ width: '100%', backgroundColor: '#F7F9FB' }} p={4}>
Select Workflow
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment