store latest params in the store

This commit is contained in:
Kurt Hutten
2021-08-07 17:00:29 +10:00
parent 2d7df96ad9
commit 02160e1e8e
6 changed files with 43 additions and 35 deletions

View File

@@ -31,8 +31,8 @@ export interface HealthyResponse {
data: any
type: 'stl' | 'png' | 'geometry'
}
customizerParams?: any
lastParameters?: any
customizerParams?: any[]
currentParameters?: RawCustomizerParams
}
export interface RawCustomizerParams {
@@ -45,14 +45,14 @@ export function createHealthyResponse({
consoleMessage,
type,
customizerParams,
lastParameters,
currentParameters,
}: {
date: Date
data: any
consoleMessage: string
type: HealthyResponse['objectData']['type']
customizerParams?: any
lastParameters?: any
currentParameters?: any
}): HealthyResponse {
return {
status: 'healthy',
@@ -66,7 +66,7 @@ export function createHealthyResponse({
time: date,
},
customizerParams,
lastParameters,
currentParameters,
}
}

View File

@@ -70,7 +70,7 @@ function CSG2Object3D(obj) {
}
let scriptWorker
let lastParameters = {}
let currentParameters = {}
const scriptUrl = '/demo-worker.js'
let resolveReference = null
let response = null
@@ -117,7 +117,7 @@ export const render: DefaultKernelExport['render'] = async ({
consoleMessage: data.scriptStats,
date: new Date(),
customizerParams: parameterDefinitions,
lastParameters,
currentParameters,
})
}
callResolve()
@@ -148,7 +148,7 @@ export const render: DefaultKernelExport['render'] = async ({
// we need this to keep the form filled with same data when new parameter definitions arrive
// each render of the script could provide new paramaters. In case some of them are still rpesent
// it is expected for them to stay the same and not just reset
lastParameters = parameters || {}
currentParameters = parameters || {}
const waitResult = new Promise((resolve) => {
resolveReference = resolve

View File

@@ -28,7 +28,7 @@ export function genParams(
defs,
target,
storedParams = {},
callback = undefined,
callback: (values: RawCustomizerParams, source: any) => void = undefined,
buttons = ['reset', 'save', 'load', 'edit', 'link']
) {
const funcs = {
@@ -140,7 +140,7 @@ export function genParams(
if (missingKeys.length) console.log('missing param impl', missingKeys)
function _callback(source = 'change') {
if (callback) callback(getParams(target), source)
if (callback && source !== 'group') callback(getParams(target), source)
}
html += '<div class="jscad-param-buttons"><div>'
@@ -179,7 +179,7 @@ export function genParams(
})
}
export function getParams(target: HTMLElement): RawCustomizerParams {
function getParams(target: HTMLElement): RawCustomizerParams {
const params = {}
if (!target) return params