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 ( -
+