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..6587bdc 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) { diff --git a/web/src/helpers/hooks/useIdeState.js b/web/src/helpers/hooks/useIdeState.js index aba8d30..a6e123b 100644 --- a/web/src/helpers/hooks/useIdeState.js +++ b/web/src/helpers/hooks/useIdeState.js @@ -16,11 +16,14 @@ module stick(basewid, angl){ } }` +export const codeStorageKey = 'Last-openscad-code' + export const useIdeState = () => { + const code = localStorage.getItem(codeStorageKey) || donutInitCode const initialState = { ideType: 'openScad', consoleMessages: [{ type: 'message', message: 'Initialising OpenSCAD' }], - code: donutInitCode, + code, objectData: { type: 'stl', data: 'some binary',