@@ -157,7 +157,7 @@ export class IssuesTreeData
157157
158158 getChildren (
159159 element : FolderRepositoryManager | QueryNode | IssueGroupNode | IssueItem | undefined ,
160- ) : FolderRepositoryManager [ ] | QueryNode [ ] | Promise < IssueItem [ ] | IssueGroupNode [ ] > {
160+ ) : FolderRepositoryManager [ ] | QueryNode [ ] | Promise < FolderRepositoryManager [ ] | QueryNode [ ] | IssueItem [ ] | IssueGroupNode [ ] > {
161161 if ( element === undefined && this . manager . state !== ReposManagerState . RepositoriesLoaded ) {
162162 return this . getStateChildren ( ) ;
163163 } else {
@@ -185,12 +185,23 @@ export class IssuesTreeData
185185 }
186186 }
187187
188- private getRootChildren ( ) : FolderRepositoryManager [ ] | QueryNode [ ] | Promise < IssueItem [ ] | IssueGroupNode [ ] > {
188+ private async getRootChildren ( ) : Promise < FolderRepositoryManager [ ] | QueryNode [ ] | IssueItem [ ] | IssueGroupNode [ ] > {
189189 // If there's only one folder manager go straight to the query nodes
190190 if ( this . manager . folderManagers . length === 1 ) {
191191 return this . getRepoChildren ( this . manager . folderManagers [ 0 ] ) ;
192192 } else if ( this . manager . folderManagers . length > 1 ) {
193- return this . manager . folderManagers ;
193+ // Hide repositories that have no matching issues in any query
194+ const managersWithIssues : FolderRepositoryManager [ ] = [ ] ;
195+ for ( const fm of this . manager . folderManagers ) {
196+ const issueCol = this . stateManager . getIssueCollection ( fm . repository . rootUri ) ;
197+ const queryResultPromises = Array . from ( issueCol . values ( ) ) ;
198+ const queryResults = await Promise . all ( queryResultPromises ) ;
199+ const hasMatchingIssues = queryResults . some ( r => r . issues && r . issues . length > 0 ) ;
200+ if ( hasMatchingIssues ) {
201+ managersWithIssues . push ( fm ) ;
202+ }
203+ }
204+ return managersWithIssues ;
194205 } else {
195206 return [ ] ;
196207 }
@@ -246,7 +257,7 @@ export class IssuesTreeData
246257
247258 getIssuesChildren (
248259 element : FolderRepositoryManager | QueryNode | IssueGroupNode | IssueItem | undefined ,
249- ) : FolderRepositoryManager [ ] | QueryNode [ ] | Promise < IssueItem [ ] | IssueGroupNode [ ] > {
260+ ) : FolderRepositoryManager [ ] | QueryNode [ ] | Promise < FolderRepositoryManager [ ] | QueryNode [ ] | IssueItem [ ] | IssueGroupNode [ ] > {
250261 if ( element === undefined ) {
251262 return this . getRootChildren ( ) ;
252263 } else if ( element instanceof FolderRepositoryManager ) {
0 commit comments