diff --git a/web/src/components/IdeConsole/IdeConsole.js b/web/src/components/IdeConsole/IdeConsole.js
index 0b62f9c..f375687 100644
--- a/web/src/components/IdeConsole/IdeConsole.js
+++ b/web/src/components/IdeConsole/IdeConsole.js
@@ -1,17 +1,35 @@
-import { useContext } from 'react'
+import { useContext, useEffect } from 'react'
import { IdeContext } from 'src/components/IdeToolbarNew'
const IdeConsole = () => {
const { state } = useContext(IdeContext)
+ useEffect(() => {
+ const element = document.querySelector('.console-tile .mosaic-window-body')
+ if (element) {
+ element.scrollTop = element.scrollHeight - element.clientHeight
+ }
+ }, [state.consoleMessages])
+ const matchEditorVsDarkThemeBg = { backgroundColor: 'rgb(30,30,30)' }
+ const matchEditorVsDarkThemeText = { color: 'rgb(212,212,212)' }
+ const matchEditorVsDarkThemeTextBrown = { color: 'rgb(206,144,120)' }
return (
-
+
- {state.consoleMessages?.map(({ type, message }, index) => (
+ {state.consoleMessages?.map(({ type, message, time }, index) => (
- {message}
+
+ {time?.toLocaleString()}
+
+
+ {message}
+
))}
diff --git a/web/src/components/IdeContainer/IdeContainer.js b/web/src/components/IdeContainer/IdeContainer.js
index 6f852aa..06d427b 100644
--- a/web/src/components/IdeContainer/IdeContainer.js
+++ b/web/src/components/IdeContainer/IdeContainer.js
@@ -58,15 +58,22 @@ const IdeContainer = () => {
}, [])
return (
-
+
{
- const title = id === 'Editor' ? `${id} (${state.ideType})` : id
return (
(
+
+ {id}
+ {id === 'Editor' && ` (${state.ideType})`}
+
+ )}
+ className={`${id.toLowerCase()} ${id.toLowerCase()}-tile`}
>
{id === 'Viewer' ? (
diff --git a/web/src/components/IdeEditor/IdeEditor.js b/web/src/components/IdeEditor/IdeEditor.js
index 498ba9d..6d1723d 100644
--- a/web/src/components/IdeEditor/IdeEditor.js
+++ b/web/src/components/IdeEditor/IdeEditor.js
@@ -1,5 +1,4 @@
-import { useContext, useEffect, Suspense, lazy } from 'react'
-import { isBrowser } from '@redwoodjs/prerender/browserUtils'
+import { useContext, Suspense, lazy } from 'react'
import { IdeContext } from 'src/components/IdeToolbarNew'
import { codeStorageKey } from 'src/helpers/hooks/useIdeState'
import { requestRender } from 'src/helpers/hooks/useIdeState'
@@ -34,15 +33,27 @@ const IdeEditor = () => {
localStorage.setItem(codeStorageKey, state.code)
}
}
+ const loading = (
+
+ )
return (
- . . . loading
}>
+
{
status: 'error',
message: {
type: 'error',
- message: addDateToLog(cleanedErrorMessage),
+ message: cleanedErrorMessage,
+ time: new Date(),
},
}
}
@@ -37,7 +38,8 @@ export const render = async ({ code }) => {
},
message: {
type: 'message',
- message: addDateToLog(data.result),
+ message: data.result || 'Successful Render',
+ time: new Date(),
},
}
} catch (e) {
@@ -49,7 +51,8 @@ export const render = async ({ code }) => {
status: 'error',
message: {
type: 'error',
- message: addDateToLog('network issue'),
+ message: 'network issue',
+ time: new Date(),
},
}
}
@@ -61,8 +64,3 @@ const openScad = {
}
export default openScad
-
-function addDateToLog(message) {
- return `-> ${new Date().toLocaleString()}
-${message}`
-}
diff --git a/web/src/helpers/cadPackages/openScadController.js b/web/src/helpers/cadPackages/openScadController.js
index 1eb3c26..da4697a 100644
--- a/web/src/helpers/cadPackages/openScadController.js
+++ b/web/src/helpers/cadPackages/openScadController.js
@@ -34,7 +34,8 @@ export const render = async ({ code, settings }) => {
status: 'error',
message: {
type: 'error',
- message: addDateToLog(cleanedErrorMessage),
+ message: cleanedErrorMessage,
+ time: new Date(),
},
}
}
@@ -47,7 +48,8 @@ export const render = async ({ code, settings }) => {
},
message: {
type: 'message',
- message: addDateToLog(data.result),
+ message: data.result,
+ time: new Date(),
},
}
} catch (e) {
@@ -59,7 +61,8 @@ export const render = async ({ code, settings }) => {
status: 'error',
message: {
type: 'error',
- message: addDateToLog('network issue'),
+ message: 'network issue',
+ time: new Date(),
},
}
}
@@ -71,8 +74,3 @@ const openScad = {
}
export default openScad
-
-function addDateToLog(message) {
- return `-> ${new Date().toLocaleString()}
-${message}`
-}
diff --git a/web/src/helpers/hooks/useIdeState.js b/web/src/helpers/hooks/useIdeState.js
index 3fc0056..bf96ef5 100644
--- a/web/src/helpers/hooks/useIdeState.js
+++ b/web/src/helpers/hooks/useIdeState.js
@@ -46,7 +46,9 @@ export const useIdeState = () => {
const code = localStorage.getItem(codeStorageKey) || initCodeMap.openscad
const initialState = {
ideType: 'INIT',
- consoleMessages: [{ type: 'message', message: 'Initialising' }],
+ consoleMessages: [
+ { type: 'message', message: 'Initialising', time: new Date() },
+ ],
code,
objectData: {
type: 'stl',
diff --git a/web/src/index.css b/web/src/index.css
index 650d409..b66a0a6 100644
--- a/web/src/index.css
+++ b/web/src/index.css
@@ -44,6 +44,11 @@
@apply list-disc;
}
+.mosaic-toolbar-overrides .mosaic-window .mosaic-window-toolbar {
+ /* makes the height of the toolbar based off the content inside instead of hardcoded to 30px */
+ height: unset;
+}
+
/* Used for LandingSection.js, if it's gone or these class isn't used there you can probably delete it */
.svg-shadow {
@@ -100,4 +105,4 @@ input.error, textarea.error {
/* used in IdeContainer component */
#cadhub-ide .mosaic-window.console .mosaic-window-body {
overflow-y: auto;
-}
\ No newline at end of file
+}