diff --git a/website/src/lib/logic/hidden.ts b/website/src/lib/logic/hidden.ts index e00061f78..6e4b9d545 100644 --- a/website/src/lib/logic/hidden.ts +++ b/website/src/lib/logic/hidden.ts @@ -23,7 +23,7 @@ export class AllHidden { update() { let hidden = true; - selection.applyToOrderedSelectedItemsFromFile((fileId, level, items) => { + selection.applyToSelectedItemsFromFile((fileId, level, items) => { let file = fileStateCollection.getFile(fileId); if (file) { for (let item of items) { diff --git a/website/src/lib/logic/selection.ts b/website/src/lib/logic/selection.ts index 265965072..d7d3f526a 100644 --- a/website/src/lib/logic/selection.ts +++ b/website/src/lib/logic/selection.ts @@ -187,6 +187,33 @@ export class Selection { return selected; } + applyToSelectedItemsFromFile( + callback: (fileId: string, level: ListLevel | undefined, items: ListItem[]) => void + ) { + let selectedItems = get(this._selection).getSelected(); + get(fileStateCollection).forEach((_, fileId) => { + let level: ListLevel | undefined = undefined; + let items: ListItem[] = []; + selectedItems.forEach((item) => { + if (item.getFileId() === fileId) { + level = item.level; + if ( + item instanceof ListFileItem || + item instanceof ListTrackItem || + item instanceof ListTrackSegmentItem || + item instanceof ListWaypointsItem || + item instanceof ListWaypointItem + ) { + items.push(item); + } + } + }); + if (items.length > 0) { + callback(fileId, level, items); + } + }); + } + applyToOrderedSelectedItemsFromFile( callback: (fileId: string, level: ListLevel | undefined, items: ListItem[]) => void, reverse: boolean = true