diff --git a/app/web/src/components/IdeConsole/IdeConsole.js b/app/web/src/components/IdeConsole/IdeConsole.js index 70a94f5..5b8e581 100644 --- a/app/web/src/components/IdeConsole/IdeConsole.js +++ b/app/web/src/components/IdeConsole/IdeConsole.js @@ -1,6 +1,7 @@ import { useContext, useEffect } from 'react' import { IdeContext } from 'src/components/IdeToolbarNew' import { matchEditorVsDarkTheme } from 'src/components/IdeEditor' +import PanelToolbar from 'src/components/PanelToolbar' const IdeConsole = () => { const { state } = useContext(IdeContext) @@ -12,27 +13,28 @@ const IdeConsole = () => { }, [state.consoleMessages]) return ( -
-
- {state.consoleMessages?.map(({ type, message, time }, index) => ( -
-            
+ +
+ {state.consoleMessages?.map(({ type, message, time }, index) => ( +
-              {time?.toLocaleString()}
-            
-
- {message} -
-
- ))} +
+ {time?.toLocaleString()} +
+
+ {message} +
+ + ))} +
- ) } diff --git a/app/web/src/components/IdeContainer/IdeContainer.js b/app/web/src/components/IdeContainer/IdeContainer.js index 08948c9..5fd802b 100644 --- a/app/web/src/components/IdeContainer/IdeContainer.js +++ b/app/web/src/components/IdeContainer/IdeContainer.js @@ -2,7 +2,7 @@ import { useContext, useRef, useEffect } from 'react' import { Mosaic, MosaicWindow } from 'react-mosaic-component' import { IdeContext } from 'src/components/IdeToolbarNew' import { requestRender } from 'src/helpers/hooks/useIdeState' -import IdeEditor, { matchEditorVsDarkTheme } from 'src/components/IdeEditor' +import IdeEditor from 'src/components/IdeEditor' import IdeViewer from 'src/components/IdeViewer' import IdeConsole from 'src/components/IdeConsole' import 'react-mosaic-component/react-mosaic-component.css' @@ -64,15 +64,7 @@ const IdeContainer = () => { return ( ( -
- {id} - {id === 'Editor' && ` (${state.ideType})`} -
- )} + renderToolbar={() =>
} // needs an empty element, otherwise it adds it's own toolbar className={`${id.toLowerCase()} ${id.toLowerCase()}-tile`} > {id === 'Viewer' ? ( diff --git a/app/web/src/components/IdeEditor/IdeEditor.js b/app/web/src/components/IdeEditor/IdeEditor.js index 93932d6..9b33fb3 100644 --- a/app/web/src/components/IdeEditor/IdeEditor.js +++ b/app/web/src/components/IdeEditor/IdeEditor.js @@ -7,7 +7,6 @@ const Editor = lazy(() => import('@monaco-editor/react')) export const matchEditorVsDarkTheme = { // Some colors to roughly match the vs-dark editor theme Bg: { backgroundColor: 'rgb(30,30,30)' }, - lighterBg: { backgroundColor: 'rgb(55,55,55)' }, Text: { color: 'rgb(212,212,212)' }, TextBrown: { color: 'rgb(206,144,120)' }, } diff --git a/app/web/src/components/IdeViewer/IdeViewer.js b/app/web/src/components/IdeViewer/IdeViewer.js index d3fa40d..8c70094 100644 --- a/app/web/src/components/IdeViewer/IdeViewer.js +++ b/app/web/src/components/IdeViewer/IdeViewer.js @@ -10,6 +10,7 @@ import { import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' import { Vector3 } from 'three' import { requestRender } from 'src/helpers/hooks/useIdeState' +import PanelToolbar from 'src/components/PanelToolbar' extend({ OrbitControls }) @@ -227,6 +228,7 @@ const IdeViewer = () => {
)} + ) } diff --git a/app/web/src/components/PanelToolbar/PanelToolbar.tsx b/app/web/src/components/PanelToolbar/PanelToolbar.tsx new file mode 100644 index 0000000..2c2f1e3 --- /dev/null +++ b/app/web/src/components/PanelToolbar/PanelToolbar.tsx @@ -0,0 +1,21 @@ +import { useContext } from 'react' +import { MosaicWindowContext } from 'react-mosaic-component' +import Svg from 'src/components/Svg/Svg' + +const PanelToolbar = ({ panelName }: { panelName : string }) => { + const {mosaicWindowActions} = useContext(MosaicWindowContext) + return ( +
+ {mosaicWindowActions.connectDragSource( +
+ +
+ )} + +
+ ) +} + +export default PanelToolbar diff --git a/app/web/src/components/Svg/Svg.js b/app/web/src/components/Svg/Svg.js index 47bbb76..90f1913 100644 --- a/app/web/src/components/Svg/Svg.js +++ b/app/web/src/components/Svg/Svg.js @@ -1,4 +1,4 @@ -const Svg = ({ name, className: className2, strokeWidth = 2 }) => { +const Svg = ({ name, className: className2 = '', strokeWidth = 2 }) => { const svgs = { 'arrow-down': ( { /> ), + 'drag-grid': ( + + + + ), 'exclamation-circle': ( { /> ), + gear: ( + + + + ), lightbulb: (