diff --git a/app/web/src/components/EditorMenu/EditorMenu.tsx b/app/web/src/components/EditorMenu/EditorMenu.tsx index cfcb1e6..c3f8556 100644 --- a/app/web/src/components/EditorMenu/EditorMenu.tsx +++ b/app/web/src/components/EditorMenu/EditorMenu.tsx @@ -1,6 +1,6 @@ import { Menu } from '@headlessui/react' -import { useIdeContext } from 'src/helpers/hooks/useIdeContext' +import { useIdeContext, ideTypeNameMap } from 'src/helpers/hooks/useIdeContext' import Svg from 'src/components/Svg/Svg' import { useRender } from 'src/components/IdeWrapper/useRender' import { makeStlDownloadHandler, PullTitleFromFirstLine } from './helpers' @@ -14,30 +14,42 @@ const EditorMenu = () => { fileName: PullTitleFromFirstLine(state.code || ''), thunkDispatch, }) + const cadName = ideTypeNameMap[state.ideType] || '' + const isOpenScad = state.ideType === 'openScad' + const isCadQuery = state.ideType === 'cadQuery' return ( -
-
- +
+
+
+ +
+
+ + + +
+
- -
-
- +
- - +
{cadName}
) diff --git a/app/web/src/components/EncodedUrl/ExternalScript.tsx b/app/web/src/components/EncodedUrl/ExternalScript.tsx index 536b7c5..0cc04d2 100644 --- a/app/web/src/components/EncodedUrl/ExternalScript.tsx +++ b/app/web/src/components/EncodedUrl/ExternalScript.tsx @@ -1,16 +1,11 @@ import { useState } from 'react' -import { useIdeContext } from 'src/helpers/hooks/useIdeContext' +import { useIdeContext, ideTypeNameMap } from 'src/helpers/hooks/useIdeContext' import OutBound from 'src/components/OutBound/OutBound' import { prepareEncodedUrl, makeExternalUrl } from './helpers' import { copyTextToClipboard } from 'src/helpers/clipboard' import { useRender } from 'src/components/IdeWrapper/useRender' import { toast } from '@redwoodjs/web/toast' -const ideTypeNameMap = { - openScad: 'OpenSCAD', - cadQuery: 'CadQuery', -} - const ExternalScript = () => { const { state, thunkDispatch } = useIdeContext() const handleRender = useRender() diff --git a/app/web/src/components/IdeConsole/IdeConsole.js b/app/web/src/components/IdeConsole/IdeConsole.js index fb3b205..cea6168 100644 --- a/app/web/src/components/IdeConsole/IdeConsole.js +++ b/app/web/src/components/IdeConsole/IdeConsole.js @@ -1,7 +1,6 @@ import { useEffect } from 'react' import { useIdeContext } from 'src/helpers/hooks/useIdeContext' import { matchEditorVsDarkTheme } from 'src/components/IdeEditor' -import PanelToolbar from 'src/components/PanelToolbar' const IdeConsole = () => { const { state } = useIdeContext() @@ -14,10 +13,9 @@ const IdeConsole = () => { return (
-
{state.consoleMessages?.map(({ type, message, time }, index) => (
,
@@ -14,6 +15,24 @@ const ELEMENT_MAP = {
   Console: ,
 }
 
+const TOOLBAR_MAP = {
+  Editor: (
+    
+ +
+ ), + Viewer: ( +
+ +
+ ), + Console: ( +
+ +
+ ), +} + const IdeContainer = () => { const { state, thunkDispatch } = useIdeContext() const viewerDOM = useRef(null) @@ -65,15 +84,7 @@ const IdeContainer = () => { return ( - id === 'Editor' ? ( -
- -
- ) : ( -
// needs an empty element, otherwise it adds it's own toolbar - ) - } + renderToolbar={() => TOOLBAR_MAP[id]} className={`${id.toLowerCase()} ${id.toLowerCase()}-tile`} > {id === 'Viewer' ? ( diff --git a/app/web/src/components/IdeViewer/IdeViewer.js b/app/web/src/components/IdeViewer/IdeViewer.js index 1bf134e..8f854e8 100644 --- a/app/web/src/components/IdeViewer/IdeViewer.js +++ b/app/web/src/components/IdeViewer/IdeViewer.js @@ -10,7 +10,6 @@ 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 }) @@ -228,7 +227,6 @@ const IdeViewer = () => {
)} -
) } diff --git a/app/web/src/components/IdeWrapper/IdeWrapper.tsx b/app/web/src/components/IdeWrapper/IdeWrapper.tsx index f81763c..3743c9b 100644 --- a/app/web/src/components/IdeWrapper/IdeWrapper.tsx +++ b/app/web/src/components/IdeWrapper/IdeWrapper.tsx @@ -35,13 +35,10 @@ const IdeToolbarNew = ({ cadPackage }) => { .
)} diff --git a/app/web/src/components/PanelToolbar/PanelToolbar.tsx b/app/web/src/components/PanelToolbar/PanelToolbar.tsx index 62d1d22..1b88675 100644 --- a/app/web/src/components/PanelToolbar/PanelToolbar.tsx +++ b/app/web/src/components/PanelToolbar/PanelToolbar.tsx @@ -5,19 +5,19 @@ import Svg from 'src/components/Svg/Svg' const PanelToolbar = ({ panelName }: { panelName: string }) => { const { mosaicWindowActions } = useContext(MosaicWindowContext) return ( -
- {mosaicWindowActions.connectDragSource( -
- -
- )} +
+ {mosaicWindowActions.connectDragSource( +
+ +
+ )}
) } diff --git a/app/web/src/helpers/hooks/useIdeContext.ts b/app/web/src/helpers/hooks/useIdeContext.ts index 279e937..dbd682a 100644 --- a/app/web/src/helpers/hooks/useIdeContext.ts +++ b/app/web/src/helpers/hooks/useIdeContext.ts @@ -4,3 +4,8 @@ import { useContext } from 'react' export function useIdeContext() { return useContext(IdeContext) } + +export const ideTypeNameMap = { + openScad: 'OpenSCAD', + cadQuery: 'CadQuery', +}