@@ -149,7 +149,7 @@ export default function RepoSelector(props: RepoSelectorProps) {
149149 setDiscoveringUpstream ( true ) ;
150150 setDiscoveredRepos ( [ ] ) ;
151151 setDiscoveryCapped ( false ) ;
152- // Build exclude set from all org repos + already-selected repos
152+ // Build exclude set from all org repos + already-selected repos + current upstream repos
153153 const allOrgFullNames = new Set < string > ( ) ;
154154 for ( const state of orgStates ( ) ) {
155155 for ( const repo of state . repos ) {
@@ -159,6 +159,9 @@ export default function RepoSelector(props: RepoSelectorProps) {
159159 for ( const repo of props . selected ) {
160160 allOrgFullNames . add ( repo . fullName ) ;
161161 }
162+ for ( const repo of props . upstreamRepos ?? [ ] ) {
163+ allOrgFullNames . add ( repo . fullName ) ;
164+ }
162165 void discoverUpstreamRepos ( discoveryClient , currentUser . login , allOrgFullNames )
163166 . then ( ( repos ) => {
164167 if ( version !== effectVersion ) return ;
@@ -353,6 +356,11 @@ export default function RepoSelector(props: RepoSelectorProps) {
353356 if ( e . key === "Enter" ) handleManualAdd ( ) ;
354357 }
355358
359+ // Manually-added upstream repos not in the discovered list
360+ const manualUpstreamRepos = createMemo ( ( ) =>
361+ ( props . upstreamRepos ?? [ ] ) . filter ( r => ! discoveredRepos ( ) . some ( d => d . fullName === r . fullName ) )
362+ ) ;
363+
356364 // Upstream repos visible in the discovery list (discovered + manually added that aren't org repos)
357365 const filteredDiscovered = createMemo ( ( ) => {
358366 const query = q ( ) ;
@@ -607,9 +615,9 @@ export default function RepoSelector(props: RepoSelectorProps) {
607615 </ Show >
608616
609617 { /* Manually-added upstream repos not in discovered list */ }
610- < Show when = { ( props . upstreamRepos ?? [ ] ) . filter ( r => ! discoveredRepos ( ) . some ( d => d . fullName === r . fullName ) ) . length > 0 } >
618+ < Show when = { manualUpstreamRepos ( ) . length > 0 } >
611619 < div class = "flex flex-col gap-1" >
612- < For each = { ( props . upstreamRepos ?? [ ] ) . filter ( r => ! discoveredRepos ( ) . some ( d => d . fullName === r . fullName ) ) } >
620+ < For each = { manualUpstreamRepos ( ) } >
613621 { ( repo ) => (
614622 < div class = "flex items-center gap-2 px-1" >
615623 < span class = "text-sm flex-1" > { repo . fullName } </ span >
0 commit comments