From e9583166f431923f716a62b697184f91ef8ed245 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Sat, 12 Jun 2021 20:35:13 +1000 Subject: [PATCH] Move context provide up one layer to the DevIdePage Related to #360 --- .../src/components/EditorMenu/EditorMenu.tsx | 2 +- .../src/components/IdeConsole/IdeConsole.js | 2 +- .../components/IdeContainer/IdeContainer.js | 2 +- app/web/src/components/IdeEditor/IdeEditor.js | 2 +- .../components/IdeToolbarNew/IdeToolbarNew.js | 59 +++++++++---------- .../src/components/IdeToolbarNew/useRender.ts | 2 +- app/web/src/components/IdeViewer/IdeViewer.js | 2 +- app/web/src/pages/DevIdePage/DevIdePage.js | 8 ++- 8 files changed, 41 insertions(+), 38 deletions(-) diff --git a/app/web/src/components/EditorMenu/EditorMenu.tsx b/app/web/src/components/EditorMenu/EditorMenu.tsx index 29995c8..40d718a 100644 --- a/app/web/src/components/EditorMenu/EditorMenu.tsx +++ b/app/web/src/components/EditorMenu/EditorMenu.tsx @@ -1,7 +1,7 @@ import { useContext } from 'react' import { Menu } from '@headlessui/react' -import { IdeContext } from 'src/components/IdeToolbarNew/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import Svg from 'src/components/Svg/Svg' import { useRender } from 'src/components/IdeToolbarNew/useRender' import {makeStlDownloadHandler, PullTitleFromFirstLine} from './helpers' diff --git a/app/web/src/components/IdeConsole/IdeConsole.js b/app/web/src/components/IdeConsole/IdeConsole.js index 12fefe1..845a5d7 100644 --- a/app/web/src/components/IdeConsole/IdeConsole.js +++ b/app/web/src/components/IdeConsole/IdeConsole.js @@ -1,5 +1,5 @@ import { useContext, useEffect } from 'react' -import { IdeContext } from 'src/components/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import { matchEditorVsDarkTheme } from 'src/components/IdeEditor' import PanelToolbar from 'src/components/PanelToolbar' diff --git a/app/web/src/components/IdeContainer/IdeContainer.js b/app/web/src/components/IdeContainer/IdeContainer.js index b297788..81f5d12 100644 --- a/app/web/src/components/IdeContainer/IdeContainer.js +++ b/app/web/src/components/IdeContainer/IdeContainer.js @@ -1,6 +1,6 @@ import { useContext, useRef, useEffect } from 'react' import { Mosaic, MosaicWindow } from 'react-mosaic-component' -import { IdeContext } from 'src/components/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import { requestRender } from 'src/helpers/hooks/useIdeState' import IdeEditor from 'src/components/IdeEditor' import IdeViewer from 'src/components/IdeViewer' diff --git a/app/web/src/components/IdeEditor/IdeEditor.js b/app/web/src/components/IdeEditor/IdeEditor.js index 9b33fb3..819f40c 100644 --- a/app/web/src/components/IdeEditor/IdeEditor.js +++ b/app/web/src/components/IdeEditor/IdeEditor.js @@ -1,5 +1,5 @@ import { useContext, Suspense, lazy } from 'react' -import { IdeContext } from 'src/components/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import { makeCodeStoreKey } from 'src/helpers/hooks/useIdeState' import { requestRender } from 'src/helpers/hooks/useIdeState' const Editor = lazy(() => import('@monaco-editor/react')) diff --git a/app/web/src/components/IdeToolbarNew/IdeToolbarNew.js b/app/web/src/components/IdeToolbarNew/IdeToolbarNew.js index 3f95e13..915c071 100644 --- a/app/web/src/components/IdeToolbarNew/IdeToolbarNew.js +++ b/app/web/src/components/IdeToolbarNew/IdeToolbarNew.js @@ -1,7 +1,7 @@ -import { createContext, useEffect, useState } from 'react' +import { useContext, useEffect, useState } from 'react' import IdeContainer from 'src/components/IdeContainer' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import { isBrowser } from '@redwoodjs/prerender/browserUtils' -import { useIdeState } from 'src/helpers/hooks/useIdeState' import { handleRenderVerbose } from './useRender' import { decode } from 'src/helpers/compress' import { flow } from 'lodash/fp' @@ -19,9 +19,8 @@ export const githubSafe = (url) => const prepareEncodedUrl = flow(decodeURIComponent, githubSafe) -export const IdeContext = createContext() const IdeToolbarNew = ({ cadPackage }) => { - const [state, thunkDispatch] = useIdeState() + const { state, thunkDispatch } = useContext(IdeContext) const [shouldShowConstructionMessage, setShouldShowConstructionMessage] = useState(true) const scriptKey = 'encoded_script' const scriptKeyV2 = 'encoded_script_v2' @@ -68,34 +67,32 @@ const IdeToolbarNew = ({ cadPackage }) => { } return ( - -
-
- -
-
- - {shouldShowConstructionMessage &&
-
- We're still working on this. Since you're here, have a look what{' '} - - we've got planned - - . -
- -
} - -
+
+
+
- +
+ + {shouldShowConstructionMessage &&
+
+ We're still working on this. Since you're here, have a look what{' '} + + we've got planned + + . +
+ +
} + +
+
) } diff --git a/app/web/src/components/IdeToolbarNew/useRender.ts b/app/web/src/components/IdeToolbarNew/useRender.ts index b754987..f805127 100644 --- a/app/web/src/components/IdeToolbarNew/useRender.ts +++ b/app/web/src/components/IdeToolbarNew/useRender.ts @@ -1,7 +1,7 @@ import { makeCodeStoreKey } from 'src/helpers/hooks/useIdeState' import { requestRender } from 'src/helpers/hooks/useIdeState' import { useContext } from 'react' -import { IdeContext } from 'src/components/IdeToolbarNew/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' export const handleRenderVerbose = ({thunkDispatch, state}) => { thunkDispatch((dispatch, getState) => { diff --git a/app/web/src/components/IdeViewer/IdeViewer.js b/app/web/src/components/IdeViewer/IdeViewer.js index 8c70094..de02dde 100644 --- a/app/web/src/components/IdeViewer/IdeViewer.js +++ b/app/web/src/components/IdeViewer/IdeViewer.js @@ -1,4 +1,4 @@ -import { IdeContext } from 'src/components/IdeToolbarNew' +import { IdeContext } from 'src/pages/DevIdePage/DevIdePage' import { useRef, useState, useEffect, useContext } from 'react' import { Canvas, diff --git a/app/web/src/pages/DevIdePage/DevIdePage.js b/app/web/src/pages/DevIdePage/DevIdePage.js index e6c16a9..39e2f92 100644 --- a/app/web/src/pages/DevIdePage/DevIdePage.js +++ b/app/web/src/pages/DevIdePage/DevIdePage.js @@ -1,8 +1,12 @@ +import { createContext } from 'react' import Seo from 'src/components/Seo/Seo' import IdeToolbar from 'src/components/IdeToolbarNew' import { Toaster } from '@redwoodjs/web/toast' +import { useIdeState } from 'src/helpers/hooks/useIdeState' +export const IdeContext = createContext() const DevIdePage = ({ cadPackage }) => { + const [state, thunkDispatch] = useIdeState() return (
{ lang="en-US" /> - + + +
) }