Compare commits

...

2 Commits

Author SHA1 Message Date
dd151bdad8 v3.2.0
Some checks failed
Default (tags) / security (push) Failing after 14s
Default (tags) / test (push) Failing after 14s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-12-22 10:49:02 +00:00
bd409745e6 feat(wcc-sidebar): auto-expand sidebar folder when selecting an element with multiple demos 2025-12-22 10:49:02 +00:00
4 changed files with 31 additions and 2 deletions

View File

@@ -1,5 +1,13 @@
# Changelog
## 2025-12-22 - 3.2.0 - feat(wcc-sidebar)
auto-expand sidebar folder when selecting an element with multiple demos
- Add updated() lifecycle to auto-expand folder when selectedItem changes
- Find element name by matching selectedItem against dashboardRef.elements
- Only auto-expand when the element has multiple demos (checks item.demo and hasMultipleDemos)
- Immutably update expandedElements set to trigger re-render and avoid duplicate additions
## 2025-12-21 - 3.1.2 - fix(wcc-properties)
Use LitElement.updated to recreate properties only when selectedItem changes and handle errors; remove custom scheduleUpdate implementation

View File

@@ -1,6 +1,6 @@
{
"name": "@design.estate/dees-wcctools",
"version": "3.1.2",
"version": "3.2.0",
"private": false,
"description": "A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.",
"exports": {

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-wcctools',
version: '3.1.2',
version: '3.2.0',
description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
}

View File

@@ -308,6 +308,27 @@ export class WccSidebar extends DeesElement {
this.expandedElements = newSet;
}
protected updated(changedProperties: Map<string, unknown>) {
super.updated(changedProperties);
// Auto-expand folder when a multi-demo element is selected
if (changedProperties.has('selectedItem') && this.selectedItem) {
const elementName = Object.keys(this.dashboardRef.elements).find(
name => this.dashboardRef.elements[name] === this.selectedItem
);
if (elementName) {
const item = this.dashboardRef.elements[elementName] as any;
if (item.demo && hasMultipleDemos(item.demo)) {
if (!this.expandedElements.has(elementName)) {
const newSet = new Set(this.expandedElements);
newSet.add(elementName);
this.expandedElements = newSet;
}
}
}
}
}
public selectItem(typeArg: TElementType, itemNameArg: string, itemArg: TTemplateFactory | DeesElement, demoIndex: number = 0) {
console.log('selected item');
console.log(itemNameArg);