diff --git a/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx b/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx index 88efb669b..9671acd94 100644 --- a/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx +++ b/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx @@ -145,13 +145,23 @@ export const SchematicEditor = () => { }) } + const nodeMap = (item: any) => { + return { + id: item.id, + type: item.type, + position: item.position, + data: item.data + } + } + + const onUpdatePage = (page: any) => { let input : any = {}; if(page.nodes){ - input.nodes = page.nodes?.filter((a) => a.id != 'page' && a.id != 'canvas'); + input.nodes = page.nodes?.filter((a) => a.id != 'page' && a.id != 'canvas')?.map(nodeMap); } if(page.edges){ diff --git a/packages/core-ui/command-remote-components/src/index.ts b/packages/core-ui/command-remote-components/src/index.ts index 255c3301f..930e72dd3 100644 --- a/packages/core-ui/command-remote-components/src/index.ts +++ b/packages/core-ui/command-remote-components/src/index.ts @@ -20,7 +20,7 @@ const Loader = async (base_url: string, start: string) => { let requirementFetch: any[] = []; const _initialRequire = (name: string) => { - console.log({name, baseRequirements}) + if (!(name in baseRequirements)) { requirementFetch.push((async () => { @@ -53,8 +53,6 @@ const Loader = async (base_url: string, start: string) => { func(_requires, module, exports); - console.log({module}) - return module.exports; } @@ -93,7 +91,6 @@ const useRemoteComponents = (cache?: RemoteComponentCache) => { return Object.keys(data).map((x) => ({ name: x, component: data[x] })) } catch (e) { - console.log(e); // console.log({ e, base_url, url }) lock.current[id] = undefined; diff --git a/packages/core-ui/editor-canvas/src/index.tsx b/packages/core-ui/editor-canvas/src/index.tsx index 39b7d8669..8f4ab7b9a 100644 --- a/packages/core-ui/editor-canvas/src/index.tsx +++ b/packages/core-ui/editor-canvas/src/index.tsx @@ -1,6 +1,6 @@ import React, {MouseEvent, useEffect, useState} from 'react'; import { Box } from '@mui/material'; -import { ReactFlow, MiniMap, Controls, Background, Node, Edge, NodeTypes, EdgeTypes, useOnSelectionChange, useNodesState, useEdgesState, CoordinateExtent, ConnectionMode, useViewport, useReactFlow } from 'reactflow'; +import { ReactFlow, MiniMap, Controls, Background, Node, Edge, NodeTypes, EdgeTypes, useOnSelectionChange, useNodesState, useEdgesState, CoordinateExtent, ConnectionMode, useViewport, useReactFlow, SelectionMode, useStore, Rect, Transform, getNodePositionWithOrigin, useStoreApi } from 'reactflow'; import { isEqual } from 'lodash'; export interface EditorCanvasSelection { @@ -32,6 +32,16 @@ export interface EditorCanvasProps { export const EditorCanvas : React.FC = (props) => { + const storeApi = useStoreApi(); + // const { selectActive, nodeOrigin, nodeInternals, selectRect } = useStore((state) => ({ + // selectRect: state.userSelectionRect, + // selectActive: state.userSelectionActive, + // nodeInternals: state.nodeInternals, + // nodeOrigin: state.nodeOrigin + // })) + + // console.log(selectActive, selectRect) + const [ nodes, setNodes, onNodesChange ] = useNodesState(props.nodes || []) const [ edges, setEdges, onEdgesChange ] = useEdgesState(props.edges || []) @@ -43,8 +53,6 @@ export const EditorCanvas : React.FC = (props) => { const { project } = useReactFlow(); - const { x, y, zoom } = useViewport() - const onSelectionStart = (e: MouseEvent) => { let bounds = props.wrapper?.getBoundingClientRect(); @@ -67,6 +75,7 @@ export const EditorCanvas : React.FC = (props) => { }) } + let zoneOrientationX = (zone?.start?.x || 0) < (zone.end?.x || 0) let zoneOrientationY = (zone?.start?.y || 0) < (zone.end?.y || 0) @@ -96,6 +105,8 @@ export const EditorCanvas : React.FC = (props) => { useOnSelectionChange({ onChange: (params) => { + console.log("Selection change", params); + setSelection(params); props.onSelect?.(params) } @@ -296,6 +307,7 @@ export const EditorCanvas : React.FC = (props) => { // onSelectionDrag={()} onNodeDoubleClick={(ev, node) => props.onNodeDoubleClick?.(node)} connectionMode={ConnectionMode.Loose} + selectionMode={SelectionMode.Full} >