async getChildren()

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;
  }