Skip to content

Commit ae61d43

Browse files
committed
fix: creating an element under a collapsed collection that was expanded before
1 parent 61955c1 commit ae61d43

File tree

1 file changed

+12
-7
lines changed
  • fusion-studio-extension/src/browser

1 file changed

+12
-7
lines changed

fusion-studio-extension/src/browser/core.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -265,16 +265,21 @@ export class FSCore {
265265

266266
public expandAndWait(node: FSContainerNode) {
267267
return new Promise(resolve => {
268-
this.addLoadEvent(node, node => {
268+
if (node.loaded) {
269+
this.expand(node);
269270
resolve(null);
270-
return true;
271-
});
272-
this.expand(node);
271+
} else {
272+
this.addLoadEvent(node, node => {
273+
resolve(null);
274+
return true;
275+
});
276+
this.expand(node);
277+
}
273278
})
274279
}
275280

276281
public async ensureExpanded(node: FSContainerNode) {
277-
if (!node.expanded && !node.loaded) {
282+
if (!node.expanded) {
278283
await this.expandAndWait(node);
279284
}
280285
}
@@ -438,7 +443,7 @@ export class FSCore {
438443
if (FSItem.isCollection(result)) {
439444
const collection = result;
440445
// refresh collections
441-
let collectionsOld = node.children.filter(child => FSNode.isCollection(child)) as FSCollectionNode[];
446+
let collectionsOld = node.children.filter(child => FSNode.isCollection(child) && !child.isNew) as FSCollectionNode[];
442447
const collectionsNew = collection.collections.filter(subCollection => {
443448
const collectionNode = this.getNode(this.itemID(node.connectionNode.connection, subCollection));
444449
if (FSNode.isCollection(collectionNode) && collectionNode.parent === node) {
@@ -451,7 +456,7 @@ export class FSCore {
451456
collectionsOld.forEach(node => this.removeNode(node));
452457
collectionsNew.forEach(collection => this.addCollection(node, collection));
453458
// refresh documents
454-
let documentsOld = node.children.filter(child => FSNode.isDocument(child)) as FSDocumentNode[];
459+
let documentsOld = node.children.filter(child => FSNode.isDocument(child) && !child.isNew) as FSDocumentNode[];
455460
const documentsNew = collection.documents.filter(subDocument => {
456461
const documentNode = this.getNode(this.itemID(node.connectionNode.connection, subDocument));
457462
if (FSNode.isDocument(documentNode) && documentNode.parent === node) {

0 commit comments

Comments
 (0)