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

@@ -22,7 +22,7 @@ const Customizer = () => {
currentParameters || {},
(values, source) => {
thunkDispatch({ type: 'setCurrentCustomizerParams', payload: values })
if (shouldLiveUpdate && source !== 'group') {
if (shouldLiveUpdate) {
handleRender()
}
},

View File

@@ -74,6 +74,7 @@ export const makeStlDownloadHandler =
camera: state.camera,
quality: 'high',
specialCadProcess,
parameters: state.currentParameters,
}).then((result) => result && saveFile(result.data))
})
}

View File

@@ -62,6 +62,7 @@ const IdeEditor = ({ Loading }) => {
code: state.code,
viewerSize: state.viewerSize,
camera: state.camera,
parameters: state.currentParameters,
})
})
localStorage.setItem(makeCodeStoreKey(state.ideType), state.code)

View File

@@ -211,6 +211,7 @@ const IdeViewer = ({ Loading }) => {
code: state.code,
viewerSize: state.viewerSize,
camera,
parameters: state.currentParameters,
})
}
})

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,