diff --git a/packages/web/src/appobj/AppObjectList.svelte b/packages/web/src/appobj/AppObjectList.svelte index ed5477b3c..7644d5469 100644 --- a/packages/web/src/appobj/AppObjectList.svelte +++ b/packages/web/src/appobj/AppObjectList.svelte @@ -15,6 +15,8 @@ export let checkedObjectsStore = null; export let disableContextMenu = false; export let passProps; + export let getIsExpanded = null; + export let setIsExpanded = null; export let groupFunc = undefined; @@ -34,7 +36,6 @@ }) : null; - // let filtered = []; // $: { @@ -77,6 +78,8 @@ {disableContextMenu} {filter} {passProps} + {getIsExpanded} + {setIsExpanded} /> {/each} {:else} @@ -95,6 +98,8 @@ {filter} isExpandedBySearch={childrenMatched.includes(data)} {passProps} + {getIsExpanded} + {setIsExpanded} /> {/each} {/if} diff --git a/packages/web/src/appobj/AppObjectListItem.svelte b/packages/web/src/appobj/AppObjectListItem.svelte index d3af18c99..ad8690ccf 100644 --- a/packages/web/src/appobj/AppObjectListItem.svelte +++ b/packages/web/src/appobj/AppObjectListItem.svelte @@ -22,23 +22,28 @@ export let disableContextMenu = false; export let isExpandedBySearch = false; export let passProps; + export let getIsExpanded = null; + export let setIsExpanded = null; - let isExpanded = false; + let isExpandedCore = false; async function handleExpand() { if (subItemsComponent && expandOnClick) { await tick(); - isExpanded = !isExpanded; + handleExpandButton(); } } function handleExpandButton() { - isExpanded = !isExpanded; + if (getIsExpanded && setIsExpanded) { + setIsExpanded(data, !isExpanded); + } else { + isExpandedCore = !isExpandedCore; + } } $: expandable = data && isExpandable && isExpandable(data); - - $: if (!expandable && isExpanded) isExpanded = false; + $: isExpanded = expandable ? (getIsExpanded && setIsExpanded ? getIsExpanded(data) : isExpandedCore) : false; {#if !isHidden} diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index b21604e85..7f680fb78 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -25,6 +25,7 @@ conid: connection._id, keepOpen: true, }); + expandedConnections.update(x => _.uniq([...x, connection._id])); } } @@ -32,7 +33,14 @@ +