diff --git a/api/src/docker/aws-emulator.js b/api/src/docker/aws-emulator.js
index de0fec3..4c722e2 100644
--- a/api/src/docker/aws-emulator.js
+++ b/api/src/docker/aws-emulator.js
@@ -14,19 +14,8 @@ app.post('/render', async (req, res) => {
const { data } = await axios.post(invocationURL(5052), {
body: Buffer.from(JSON.stringify(req.body)).toString('base64'),
})
- if (data.statusCode !== 200) {
- res.status(data.statusCode)
- res.send(res.body)
- } else {
- const fileContents = Buffer.from(data.body, 'base64')
-
- const readStream = new stream.PassThrough()
- readStream.end(fileContents)
-
- res.set('Content-disposition', 'attachment; filename=' + 'output')
- res.set('Content-Type', 'image/png')
- readStream.pipe(res)
- }
+ res.status(data.statusCode)
+ res.send(data.body)
})
app.listen(port, () => {
diff --git a/api/src/docker/openscad/openscad.js b/api/src/docker/openscad/openscad.js
index bde2d5d..1edb2ef 100644
--- a/api/src/docker/openscad/openscad.js
+++ b/api/src/docker/openscad/openscad.js
@@ -45,11 +45,11 @@ const render = async (req, _context, callback) => {
console.log(image, 'encoded image')
const response = {
statusCode: 200,
- headers: {
- 'content-type': 'image/png',
- },
- body: image,
- isBase64Encoded: true,
+ body: JSON.stringify({
+ imageBase64: image,
+ result,
+ tempFile,
+ }),
}
callback(null, response)
}
diff --git a/api/src/docker/openscad/runScad.js b/api/src/docker/openscad/runScad.js
index a7e8929..c23e0b6 100644
--- a/api/src/docker/openscad/runScad.js
+++ b/api/src/docker/openscad/runScad.js
@@ -64,11 +64,11 @@ async function runCommand(command, timeout = 5000) {
}
if (stderr) {
console.log(`stderr: ${stderr}`)
- resolve(`stderr: ${stderr}`)
+ resolve(stderr)
return
}
console.log(`stdout: ${stdout}`)
- resolve(`stdout: ${stdout}`)
+ resolve(stdout)
})
setTimeout(() => {
reject('timeout')
diff --git a/web/src/components/IdeConsole/IdeConsole.js b/web/src/components/IdeConsole/IdeConsole.js
index 6483e23..0b62f9c 100644
--- a/web/src/components/IdeConsole/IdeConsole.js
+++ b/web/src/components/IdeConsole/IdeConsole.js
@@ -7,12 +7,12 @@ const IdeConsole = () => {
{state.consoleMessages?.map(({ type, message }, index) => (
-
- -> {message}
-
+ {message}
+
))}
diff --git a/web/src/components/IdeContainer/IdeContainer.js b/web/src/components/IdeContainer/IdeContainer.js
index 08127d6..4100e09 100644
--- a/web/src/components/IdeContainer/IdeContainer.js
+++ b/web/src/components/IdeContainer/IdeContainer.js
@@ -32,7 +32,7 @@ const IdeContainer = () => {
}
return (
-
+
(
diff --git a/web/src/components/IdeEditor/IdeEditor.js b/web/src/components/IdeEditor/IdeEditor.js
index 918138f..7ad5ad5 100644
--- a/web/src/components/IdeEditor/IdeEditor.js
+++ b/web/src/components/IdeEditor/IdeEditor.js
@@ -1,6 +1,7 @@
import { useContext, useEffect, Suspense, lazy } from 'react'
import { isBrowser } from '@redwoodjs/prerender/browserUtils'
import { IdeContext } from 'src/components/IdeToolbarNew'
+import { codeStorageKey } from 'src/helpers/hooks/useIdeState'
const Editor = lazy(() => import('@monaco-editor/react'))
const IdeEditor = () => {
@@ -34,6 +35,7 @@ const IdeEditor = () => {
if (key === 's' && (ctrlKey || metaKey)) {
event.preventDefault()
dispatch({ type: 'render', payload: { code: state.code } })
+ localStorage.setItem(codeStorageKey, state.code)
}
}
diff --git a/web/src/components/IdeToolbarNew/IdeToolbarNew.js b/web/src/components/IdeToolbarNew/IdeToolbarNew.js
index 70b9e8c..4920515 100644
--- a/web/src/components/IdeToolbarNew/IdeToolbarNew.js
+++ b/web/src/components/IdeToolbarNew/IdeToolbarNew.js
@@ -1,7 +1,7 @@
import { createContext } from 'react'
import IdeContainer from 'src/components/IdeContainer'
import { isBrowser } from '@redwoodjs/prerender/browserUtils'
-import { useIdeState } from 'src/helpers/hooks/useIdeState'
+import { useIdeState, codeStorageKey } from 'src/helpers/hooks/useIdeState'
import { copyTextToClipboard } from 'src/helpers/clipboard'
export const IdeContext = createContext()
@@ -12,6 +12,7 @@ const IdeToolbarNew = () => {
}
function handleRender() {
dispatch({ type: 'render', payload: { code: state.code } })
+ localStorage.setItem(codeStorageKey, state.code)
}
function handleMakeLink() {
if (isBrowser) {
@@ -23,7 +24,7 @@ const IdeToolbarNew = () => {
return (
-
+