Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
Signed-off-by: Tyler Ohlsen <[email protected]>
  • Loading branch information
ohltyler committed Sep 22, 2023
1 parent c2a708d commit 25ccc63
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 17 deletions.
8 changes: 0 additions & 8 deletions public/pages/workflow_detail/components/components/index.ts

This file was deleted.

2 changes: 1 addition & 1 deletion public/pages/workflow_detail/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
* SPDX-License-Identifier: Apache-2.0
*/

export * from './header';
export { WorkflowDetailHeader } from './header';
26 changes: 22 additions & 4 deletions public/pages/workflow_detail/workflow_detail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,18 @@

import React, { useEffect } from 'react';
import { RouteComponentProps } from 'react-router-dom';
import { EuiFlexItem, EuiText, EuiSpacer } from '@elastic/eui';
// import { useSelector, useDispatch } from 'react-redux';
import { EuiSpacer } from '@elastic/eui';
import { BREADCRUMBS } from '../../utils';
import { getCore } from '../../services';
import { WorkflowDetailHeader } from './components';
import {
TextEmbeddingProcessor,
IComponent,
KnnIndex,
} from '../../component_types';
import { Workspace } from './workspace';
// import { AppState, removeDirty, setComponents } from '../../store';

export interface WorkflowDetailRouterProps {
workflowId: string;
Expand All @@ -19,6 +27,18 @@ interface WorkflowDetailProps
extends RouteComponentProps<WorkflowDetailRouterProps> {}

export function WorkflowDetail(props: WorkflowDetailProps) {
// TODO: below commented out lines can be used for fetching & setting global redux state
// const dispatch = useDispatch();
// const { isDirty, components } = useSelector(
// (state: AppState) => state.workspace
// );

// TODO: Should be fetched from global state. Using some defaults for testing purposes
const curComponents = [
new TextEmbeddingProcessor(),
new KnnIndex(),
] as IComponent[];

useEffect(() => {
getCore().chrome.setBreadcrumbs([
BREADCRUMBS.AI_APPLICATION_BUILDER,
Expand All @@ -31,9 +51,7 @@ export function WorkflowDetail(props: WorkflowDetailProps) {
<div>
<WorkflowDetailHeader componentName="component 1" />
<EuiSpacer size="l" />
<EuiFlexItem>
<EuiText>Put ReactFlow canvas here...</EuiText>
</EuiFlexItem>
<Workspace components={curComponents} />
</div>
);
}
6 changes: 6 additions & 0 deletions public/pages/workflow_detail/workspace/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

export { Workspace } from './workspace';
27 changes: 27 additions & 0 deletions public/pages/workflow_detail/workspace/workspace.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import React from 'react';
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import { WorkspaceComponent } from '../workspace_component';
import { IComponent } from '../../../component_types';

interface WorkspaceProps {
components: IComponent[];
}

export function Workspace(props: WorkspaceProps) {
return (
<EuiFlexGroup direction="row">
{props.components.map((component, idx) => {
return (
<EuiFlexItem key={idx}>
<WorkspaceComponent component={component} />
</EuiFlexItem>
);
})}
</EuiFlexGroup>
);
}
6 changes: 6 additions & 0 deletions public/pages/workflow_detail/workspace_component/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

export { WorkspaceComponent } from './workspace_component';
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ import {
EuiSpacer,
EuiCard,
} from '@elastic/eui';
import { IComponent } from '../../component_types';
import { InputFieldList, NewOrExistingTabs } from './components';
import { IComponent } from '../../../component_types';
import { InputFieldList } from './input_field_list';
import { NewOrExistingTabs } from './new_or_existing_tabs';

interface WorkflowComponentProps {
interface WorkspaceComponentProps {
component: IComponent;
}

Expand All @@ -24,7 +25,7 @@ interface WorkflowComponentProps {
* Similar to Flowise's CanvasNode - see
* https://github.com/FlowiseAI/Flowise/blob/main/packages/ui/src/views/canvas/CanvasNode.js
*/
export function WorkflowComponent(props: WorkflowComponentProps) {
export function WorkspaceComponent(props: WorkspaceComponentProps) {
const { component } = props;

const [selectedTabId, setSelectedTabId] = useState<string>('existing');
Expand Down

0 comments on commit 25ccc63

Please sign in to comment.