fix(properties-panel): improve element detection timing and value handling in properties panel

This commit is contained in:
Juergen Kunz
2025-06-16 17:56:14 +00:00
parent 3d1948b93e
commit c64b106569
3 changed files with 25 additions and 11 deletions

View File

@ -309,8 +309,8 @@ export class WccProperties extends DeesElement {
console.log(anonItem.elementProperties);
const wccFrame = await this.dashboardRef.wccFrame;
// Wait for render to complete
await new Promise(resolve => setTimeout(resolve, 100));
// Wait for render to complete and any demo wrappers to run
await new Promise(resolve => setTimeout(resolve, 200));
// Try to find the element with recursive search
const viewport = await wccFrame.getViewportElement();
@ -370,7 +370,7 @@ export class WccProperties extends DeesElement {
case 'String':
return html`<input
type="text"
value=${firstFoundInstantiatedElement[key]}
.value=${firstFoundInstantiatedElement[key] || ''}
@input="${(eventArg: any) => {
firstFoundInstantiatedElement[key] = eventArg.target.value;
}}"
@ -378,14 +378,15 @@ export class WccProperties extends DeesElement {
case 'Number':
return html`<input
type="number"
value=${firstFoundInstantiatedElement[key]}
.value=${firstFoundInstantiatedElement[key] ?? ''}
@input="${(eventArg: any) => {
firstFoundInstantiatedElement[key] = eventArg.target.value;
firstFoundInstantiatedElement[key] = parseFloat(eventArg.target.value) || 0;
}}"
/>`;
case 'Enum':
const enumValues: any[] = getEnumValues(property);
return html`<select
.value=${firstFoundInstantiatedElement[key] || ''}
@change="${(eventArg: any) => {
firstFoundInstantiatedElement[key] = eventArg.target.value;
}}"
@ -393,8 +394,7 @@ export class WccProperties extends DeesElement {
${enumValues.map((valueArg) => {
return html`
<option
?selected=${valueArg === firstFoundInstantiatedElement[key] ? true : false}
name="${valueArg}"
value="${valueArg}"
>
${valueArg}
</option>