Clean up IdeToolbarNew

This commit is contained in:
Kurt Hutten
2021-06-12 20:39:33 +10:00
parent e9583166f4
commit f032dd1e90
2 changed files with 16 additions and 20 deletions

View File

@@ -2,7 +2,7 @@ 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 { handleRenderVerbose } from './useRender'
import { useRender } from './useRender'
import { decode } from 'src/helpers/compress'
import { flow } from 'lodash/fp'
import OutBound from 'src/components/OutBound'
@@ -22,6 +22,7 @@ const prepareEncodedUrl = flow(decodeURIComponent, githubSafe)
const IdeToolbarNew = ({ cadPackage }) => {
const { state, thunkDispatch } = useContext(IdeContext)
const [shouldShowConstructionMessage, setShouldShowConstructionMessage] = useState(true)
const handleRender = useRender()
const scriptKey = 'encoded_script'
const scriptKeyV2 = 'encoded_script_v2'
const fetchText = 'fetch_text_v1'
@@ -62,9 +63,6 @@ const IdeToolbarNew = ({ cadPackage }) => {
}
window.location.hash = ''
}, [cadPackage])
function handleRender() {
return handleRenderVerbose({thunkDispatch, state})
}
return (
<div className="h-full flex">

View File

@@ -3,23 +3,21 @@ import { requestRender } from 'src/helpers/hooks/useIdeState'
import { useContext } from 'react'
import { IdeContext } from 'src/pages/DevIdePage/DevIdePage'
export const handleRenderVerbose = ({thunkDispatch, state}) => {
thunkDispatch((dispatch, getState) => {
const state = getState()
dispatch({ type: 'setLoading' })
requestRender({
state,
dispatch,
code: state.code,
viewerSize: state.viewerSize,
camera: state.camera,
})
})
localStorage.setItem(makeCodeStoreKey(state.ideType), state.code)
}
export const useRender = () => {
const { state, thunkDispatch } = useContext(IdeContext)
return () => handleRenderVerbose({thunkDispatch, state})
return () => {
thunkDispatch((dispatch, getState) => {
const state = getState()
dispatch({ type: 'setLoading' })
requestRender({
state,
dispatch,
code: state.code,
viewerSize: state.viewerSize,
camera: state.camera,
})
})
localStorage.setItem(makeCodeStoreKey(state.ideType), state.code)
}
}