live customizer attempt

This commit is contained in:
Kurt Hutten
2021-08-21 11:07:09 +10:00
parent b0647171d8
commit 14600d3899
2 changed files with 9 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ import {
CadhubBooleanParam,
CadhubNumberParam,
} from './customizerConverter'
import { debounce } from 'lodash'
const Customizer = () => {
const [open, setOpen] = React.useState(false)
@@ -186,6 +187,8 @@ function NumberParam({
const [localValue, localValueSetter] = React.useState(0)
const [isLocked, isLockedSetter] = React.useState(false)
const [pixelsDragged, pixelsDraggedSetter] = React.useState(0)
const handleRender = useRender()
const liveRenderHandler = debounce((a) => handleRender(a), 250)
const step = param.step || 1
const commitChange = () => {
let num = localValue
@@ -246,6 +249,7 @@ function NumberParam({
if (isLocked && movementX) {
pixelsDraggedSetter(pixelsDragged + (movementX * step) / 8) // one step per 8 pixels
localValueSetter(Number(pixelsDragged.toFixed(2)))
liveRenderHandler({[param.name]: Number(pixelsDragged.toFixed(2))})
}
}}
>

View File

@@ -3,7 +3,7 @@ import { useIdeContext } from 'src/helpers/hooks/useIdeContext'
export const useRender = () => {
const { state, thunkDispatch } = useIdeContext()
return () => {
return (paramOverrides: {[key: string]: any} = {}) => {
thunkDispatch((dispatch, getState) => {
const state = getState()
dispatch({ type: 'setLoading' })
@@ -13,7 +13,10 @@ export const useRender = () => {
code: state.code,
viewerSize: state.viewerSize,
camera: state.camera,
parameters: state.currentParameters,
parameters: {
...state.currentParameters,
...paramOverrides,
},
})
})
localStorage.setItem(makeCodeStoreKey(state.ideType), state.code)