Skip to content

Commit 6f47068

Browse files
committed
fix: hidden state should not be inherited
1 parent 4812c81 commit 6f47068

File tree

1 file changed

+10
-5
lines changed
  • packages/svelte-file-tree/src/lib/components

1 file changed

+10
-5
lines changed

packages/svelte-file-tree/src/lib/components/Tree.svelte

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,16 @@
143143
parent,
144144
order: result.length,
145145
selected: () => selectedIds.has(node.id),
146-
expanded: () => expandedIds.has(node.id),
146+
expanded: () => {
147+
if (parent !== undefined && !parent.expanded) {
148+
return false;
149+
}
150+
return expandedIds.has(node.id);
151+
},
147152
inClipboard: () => clipboardIds.has(node.id),
148153
disabled: () => parent?.disabled || isItemDisabled(node),
149154
visible: () => {
150-
if (parent !== undefined && (!parent.expanded || !parent.visible)) {
155+
if (parent !== undefined && !parent.expanded) {
151156
return false;
152157
}
153158
return !isItemHidden(node);
@@ -210,7 +215,7 @@
210215
}
211216
212217
while (current !== undefined && !current.visible) {
213-
if (current.node.type === "folder") {
218+
if (current.node.type === "folder" && !current.expanded) {
214219
current = items[current.order + current.node.count + 1];
215220
} else {
216221
current = items[current.order + 1];
@@ -231,15 +236,15 @@
231236
function getFirstVisibleItem() {
232237
let current = items[0];
233238
if (current !== undefined && !current.visible) {
234-
current = getNextVisibleItem(current, { skipChildren: true });
239+
current = getNextVisibleItem(current);
235240
}
236241
return current;
237242
}
238243
239244
function getLastVisibleItem() {
240245
let current = items[items.length - 1];
241246
if (current !== undefined && !current.visible) {
242-
while (current.parent !== undefined && !current.parent.visible) {
247+
while (current.parent !== undefined && !current.parent.expanded) {
243248
current = current.parent;
244249
}
245250
current = getPreviousVisibleItem(current);

0 commit comments

Comments
 (0)