deeply compare old and new params

This commit is contained in:
Kurt Hutten
2021-08-07 21:26:11 +10:00
parent 454995304a
commit dcd9d42d32
8 changed files with 9 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ export const stlToGeometry = (url) =>
export interface RenderArgs {
code: State['code']
parameters: any
parameters?: RawCustomizerParams
settings: {
camera: State['camera']
viewerSize: State['viewerSize']

View File

@@ -129,7 +129,7 @@ export const render: DefaultKernelExport['render'] = async ({
scriptWorker.postMessage({ action: 'init', baseURI, alias: [] })
}
if (parameters) {
if (parameters && currentParameters && JSON.stringify(parameters) !== JSON.stringify(currentParameters)) {
// we are not evaluating code, but reacting to parameters change
scriptWorker.postMessage({
action: 'updateParams',

View File

@@ -26,6 +26,7 @@ export const use3dViewerResize = () => {
code: state.code,
viewerSize: { width, height },
camera: state.camera,
parameters: state.currentParameters,
})
}
})

View File

@@ -183,7 +183,7 @@ export const useIdeState = (): [State, (actionOrThunk: any) => any] => {
data: payload.objectData?.data,
},
customizerParams: payload.customizerParams || state.customizerParams,
currentParameters: payload.currentParameters,
currentParameters: Object.keys(payload.currentParameters).length ? payload.currentParameters : state.currentParameters,
consoleMessages: payload.message
? [...state.consoleMessages, payload.message]
: payload.message,
@@ -198,6 +198,7 @@ export const useIdeState = (): [State, (actionOrThunk: any) => any] => {
isLoading: false,
}
case 'setCurrentCustomizerParams':
if (!Object.keys(payload).length) return state
return {
...state,
currentParameters: payload,