diff --git a/packages/app/hivecommand-backend/src/schema/schematics/index.ts b/packages/app/hivecommand-backend/src/schema/schematics/index.ts index 4be41dd3f..27d407b29 100644 --- a/packages/app/hivecommand-backend/src/schema/schematics/index.ts +++ b/packages/app/hivecommand-backend/src/schema/schematics/index.ts @@ -100,17 +100,13 @@ export default (prisma: PrismaClient) => { }) const result = await lambda.send(invokeCommand) - // { - // FunctionName: process.env.EXPORT_LAMBDA || '', - // Payload: JSON.stringify({ - // program: currentProgram - // }) - // }).promise() - - if(result.Payload) - return Buffer.from(result.Payload).toString('utf-8') - else + + if(result.Payload){ + let url = Buffer.from(result.Payload).toString('utf-8'); + return url.substring(1, url.length -1); + }else{ throw new Error("No payload received"); + } }, createCommandSchematicPage: async (root: any, args: {schematic: string, input: any}, context: any) => { 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 9cd03fbf8..37abf460a 100644 --- a/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx +++ b/packages/app/hivecommand-frontend/src/views/schematic-editor/index.tsx @@ -105,30 +105,25 @@ export const SchematicEditor = () => { onExport={() => { - saveAs( - 'https://hivecommand-schematic-export-bucket-6e95298.s3.ap-southeast-2.amazonaws.com/DfJFb4olASqMpXjgxdjl7?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAW3WJ3ZIPLC3BFO6W%2F20230913%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20230913T214842Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEE4aDmFwLXNvdXRoZWFzdC0yIkgwRgIhANrolj9CwKlqgH7%2Ff2eo%2BkKm5GcQXPn2KpNSPLn6wn7%2BAiEAw9hUEgFaqrl9%2FR8iZVV6JDf19SiZxJy7q4oGLBNhDdcqqAMINxACGgw0NzE3OTYwMDk1MDIiDDp9S9eM1OVkUjyW%2FCqFA4%2FsXqGh5B98hg7PuV0AK4UeOSefcHV1UQsdl2uTKTCte0f0rKRKpODSTxmEuD%2BbJXfzKofq4ENwL4X4qdsJxYtlZcsTKsmYMtTE2z82Y6U0hLZi3CTZbtM%2FSpLTCkcEfUjxTEqZAqclGa3zFToByv1F5Km872nr06%2B8%2FydwIe6gM75kQJ1DiXq6SOKZh0V8XbvwAGLkmMEASiwc1pub3l3JyrG8RRYCJCDcnsPASmX9OGPegtkVuHlLlRJ8c55kcyeKqXsAKgdgc8gtOq6MCu%2B9q%2FWwXfenZEwfEuwwUmGxK1cEWt6J5UiIXy1cHvz2nfLYBiiJjkcDCSQRofRqD4VM5589Qjm2sSEUtmPU6WlR7mAlsyALDMDYlQb0t8963lkxOf366xSGbADWbO8DpsHsKNLmmyvJTIdicyiT4s7Jqk6akiQTTdXOd9FcUhD2Lv6j%2FvFXpMW%2BcHYG%2BG2AhYbSFOQYUlg%2BVp7M15UEabQcsNwNKtMRsBG%2BQXjoRRuAkaeoL0orMObZiKgGOpwB9q%2FKUkxPWmO1zQpqnIEnh9%2B%2Fv4w1%2BefqyInSHb4aF%2BOUXeMNFiWwhZP4jb7HBAHJlNSmDGz2%2BYykJ%2B5IeWPYmrvjjJKde4zb8M2oRMzlpcYQhqt%2BnTd0zzKNnt1gKRIAv98KgC%2BfhXletDmt6avDd7pAndSDIvqBg8Pevx8cu406%2Bhk7KXbSZrrupPwe33ce4Q31G0psNp%2Fs17lV&X-Amz-Signature=c44a819d860ed25809216a028d5a82364f4d27eb152d6b9be62820ba1b357584&X-Amz-SignedHeaders=host&x-id=GetObject', - `${schematic?.name}.pdf` - ); + + setExporting(true); + exportSchematic({variables: {id: schematic.id}}).then(async (response) => { - // var link = document.createElement('a'); - // link.target = "_blank" - // link.href = 'https://hivecommand-schematic-export-bucket-6e95298.s3.ap-southeast-2.amazonaws.com/DfJFb4olASqMpXjgxdjl7?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAW3WJ3ZIPLC3BFO6W%2F20230913%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20230913T214842Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEE4aDmFwLXNvdXRoZWFzdC0yIkgwRgIhANrolj9CwKlqgH7%2Ff2eo%2BkKm5GcQXPn2KpNSPLn6wn7%2BAiEAw9hUEgFaqrl9%2FR8iZVV6JDf19SiZxJy7q4oGLBNhDdcqqAMINxACGgw0NzE3OTYwMDk1MDIiDDp9S9eM1OVkUjyW%2FCqFA4%2FsXqGh5B98hg7PuV0AK4UeOSefcHV1UQsdl2uTKTCte0f0rKRKpODSTxmEuD%2BbJXfzKofq4ENwL4X4qdsJxYtlZcsTKsmYMtTE2z82Y6U0hLZi3CTZbtM%2FSpLTCkcEfUjxTEqZAqclGa3zFToByv1F5Km872nr06%2B8%2FydwIe6gM75kQJ1DiXq6SOKZh0V8XbvwAGLkmMEASiwc1pub3l3JyrG8RRYCJCDcnsPASmX9OGPegtkVuHlLlRJ8c55kcyeKqXsAKgdgc8gtOq6MCu%2B9q%2FWwXfenZEwfEuwwUmGxK1cEWt6J5UiIXy1cHvz2nfLYBiiJjkcDCSQRofRqD4VM5589Qjm2sSEUtmPU6WlR7mAlsyALDMDYlQb0t8963lkxOf366xSGbADWbO8DpsHsKNLmmyvJTIdicyiT4s7Jqk6akiQTTdXOd9FcUhD2Lv6j%2FvFXpMW%2BcHYG%2BG2AhYbSFOQYUlg%2BVp7M15UEabQcsNwNKtMRsBG%2BQXjoRRuAkaeoL0orMObZiKgGOpwB9q%2FKUkxPWmO1zQpqnIEnh9%2B%2Fv4w1%2BefqyInSHb4aF%2BOUXeMNFiWwhZP4jb7HBAHJlNSmDGz2%2BYykJ%2B5IeWPYmrvjjJKde4zb8M2oRMzlpcYQhqt%2BnTd0zzKNnt1gKRIAv98KgC%2BfhXletDmt6avDd7pAndSDIvqBg8Pevx8cu406%2Bhk7KXbSZrrupPwe33ce4Q31G0psNp%2Fs17lV&X-Amz-Signature=c44a819d860ed25809216a028d5a82364f4d27eb152d6b9be62820ba1b357584&X-Amz-SignedHeaders=host&x-id=GetObject'; //response.data?.exportCommandSchematic - // link.name = `${schematic?.name}.pdf`; - - // link.click(); - // link = null; - - // setExporting(true); - // exportSchematic({variables: {id: schematic.id}}).then((response) => { - // setExporting(false); - - // console.log(response.data) + console.log(response.data) + const resp = await fetch(response.data?.exportCommandSchematic); + const data = await resp.blob() + saveAs( + data, + `${schematic?.name}.pdf` + ); + + setExporting(false); - // }).catch((e) => { - // setExporting(false); - // }) + }).catch((e) => { + setExporting(false); + }) }} onUpdatePageOrder={(oldIx, newIx) => { diff --git a/packages/core-ui/command-electrical-editor/src/canvas/surface.tsx b/packages/core-ui/command-electrical-editor/src/canvas/surface.tsx index 3128a765b..d53664709 100644 --- a/packages/core-ui/command-electrical-editor/src/canvas/surface.tsx +++ b/packages/core-ui/command-electrical-editor/src/canvas/surface.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useMemo, useState } from 'react'; import { Background, ConnectionMode, Controls, MiniMap, ReactFlow, SelectionMode, useEdgesState, useNodesState, useOnSelectionChange } from 'reactflow'; import { useEditorContext } from '../context'; import { BoxNode, CanvasNode, ElectricalSymbol, TextNode } from './node'; +import { nodeTypes as _nodeTypes, edgeTypes as _edgeTypes } from '@hive-command/electrical-nodes'; import { WireEdge } from './edge'; import { isEqual } from 'lodash' @@ -22,16 +23,9 @@ export const CanvasSurface = () => { setEdges(pages?.find((a: any) => a.id == selectedPage)?.edges || []) }, [selectedPage, pages]) - const nodeTypes = useMemo(() => ({ - electricalSymbol: ElectricalSymbol, - canvasNode: CanvasNode, - box: BoxNode, - text: TextNode, - }), []) - - const edgeTypes = useMemo(() => ({ - wire: WireEdge - }), []) + const nodeTypes = useMemo(() => _nodeTypes, []) + + const edgeTypes = useMemo(() => _edgeTypes, []) const nodeMap = (item: any) => { return { diff --git a/packages/core-ui/command-electrical-editor/src/panes/pages.tsx b/packages/core-ui/command-electrical-editor/src/panes/pages.tsx index d699071cd..1e0992e3a 100644 --- a/packages/core-ui/command-electrical-editor/src/panes/pages.tsx +++ b/packages/core-ui/command-electrical-editor/src/panes/pages.tsx @@ -81,7 +81,7 @@ export const PagesPane = (props: any) => { diff --git a/packages/core-ui/command-electrical-nodes/src/node.tsx b/packages/core-ui/command-electrical-nodes/src/node.tsx index c82c7e59f..720410cba 100644 --- a/packages/core-ui/command-electrical-nodes/src/node.tsx +++ b/packages/core-ui/command-electrical-nodes/src/node.tsx @@ -1,7 +1,10 @@ -import { CanvasNode, ElectricalSymbol } from './nodes'; +import { CanvasNode, ElectricalSymbol } from './nodes'; export const nodeTypes = { electricalSymbol: ElectricalSymbol, - canvasNode: CanvasNode + canvasNode: CanvasNode, + + box: BoxNode, + text: TextNode, } diff --git a/packages/core-ui/command-schematic-viewer/src/index.tsx b/packages/core-ui/command-schematic-viewer/src/index.tsx index 50569ea2c..c722727bd 100644 --- a/packages/core-ui/command-schematic-viewer/src/index.tsx +++ b/packages/core-ui/command-schematic-viewer/src/index.tsx @@ -3,7 +3,7 @@ import { Box, Typography } from '@mui/material'; import { ReactFlow, ReactFlowProvider, Node, Edge } from 'reactflow'; import 'reactflow/dist/style.css'; import { ViewportLogger } from './viewport'; -import { nodeTypes, edgeTypes, ElectricalNodesProvider } from '@hive-command/electrical-nodes' +import { nodeTypes as _nodeTypes, edgeTypes as _edgeTypes, ElectricalNodesProvider } from '@hive-command/electrical-nodes' export interface SchematicViewerProps { ratio: number, @@ -15,6 +15,10 @@ export interface SchematicViewerProps { export const SchematicViewer : React.FC = (props) => { console.log(props); // width: 1080, height: 1080 * (props.ratio || 1.77), + + const nodeTypes = useMemo(() => _nodeTypes, []); + const edgeTypes = useMemo(() => _edgeTypes, []); + return (