From 6771346383eb75b1633861cf21b3366a2ae8df18 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Sat, 23 Sep 2023 17:52:26 -0400 Subject: [PATCH] fix(bindgen): demo preRun execution for production builds --- .../interface-functions-demo-typescript.js | 24 ++++++++++++++----- src/bindgen/typescript/typescript-bindings.js | 13 +++++----- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/bindgen/typescript/demo/interface-functions-demo-typescript.js b/src/bindgen/typescript/demo/interface-functions-demo-typescript.js index e13c53fa5..013591c0c 100644 --- a/src/bindgen/typescript/demo/interface-functions-demo-typescript.js +++ b/src/bindgen/typescript/demo/interface-functions-demo-typescript.js @@ -139,8 +139,14 @@ class ${functionNamePascalCase}Model { result += outputDemoTypeScript(functionName, '', indent, output) }) - result += `\n${indent}const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + result += `\n${indent}const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === '${functionName}-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== '${functionName}') { @@ -149,10 +155,16 @@ class ${functionNamePascalCase}Model { url.search = params window.history.replaceState({ functionName: '${functionName}' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === '${functionName}') { + preRun() } }) diff --git a/src/bindgen/typescript/typescript-bindings.js b/src/bindgen/typescript/typescript-bindings.js index 0c5994d79..c21f51bff 100644 --- a/src/bindgen/typescript/typescript-bindings.js +++ b/src/bindgen/typescript/typescript-bindings.js @@ -144,13 +144,12 @@ function typescriptBindings (outputDir, buildDir, wasmBinaries, options, forNode readmePipelines += readmeResult }) - demoFunctionsTypeScript += `\nconst tabGroup = document.querySelector('sl-tab-group') -const params = new URLSearchParams(window.location.search) -if (params.has('functionName')) { - const functionName = params.get('functionName') - tabGroup.show(functionName + '-panel') -} else { - tabGroup.show('${firstFunctionName}-panel') + demoFunctionsTypeScript += `\nconst params = new URLSearchParams(window.location.search) +if (!params.has('functionName')) { + params.set('functionName', '${firstFunctionName}') + const url = new URL(document.location) + url.search = params + window.history.replaceState({ functionName: '${firstFunctionName}' }, '', url) } `