in src/desktop/tree_view/issuable_data_provider.ts [29:48]
async getChildren(el: ItemModel | undefined): Promise<(ItemModel | vscode.TreeItem)[]> {
if (el) return el.getChildren();
this.#children.forEach(ch => ch.dispose());
if (!this.#extensionState.isValid()) return []; // show welcome screen
const { customQueries } = extensionConfigurationService.getConfiguration();
const children = gitExtensionWrapper.gitRepositories.map(r => {
const selected = getProjectRepository().getSelectedOrDefaultForRepository(r.rootFsPath);
if (selected) {
const shouldExpandItem = gitExtensionWrapper.gitRepositories.length === 1;
return new ProjectItemModel(selected, customQueries, shouldExpandItem);
}
if (getProjectRepository().repositoryHasAmbiguousProjects(r.rootFsPath)) {
return new MultipleProjectsItem(r);
}
return new NoProjectItem(r);
});
this.#children = children.filter((c): c is ProjectItemModel => c instanceof ProjectItemModel);
return children;
}