@@ -13,12 +13,10 @@ import {Heading, Text} from 'sentry/components/core/text';
1313import { Tooltip } from 'sentry/components/core/tooltip' ;
1414import { IconSettings } from 'sentry/icons' ;
1515import { t , tct } from 'sentry/locale' ;
16- import type { OrganizationIntegration } from 'sentry/types/integrations' ;
16+ import type { OrganizationIntegration , Repository } from 'sentry/types/integrations' ;
1717import { useInfiniteRepositories } from 'sentry/views/prevent/preventAI/hooks/usePreventAIInfiniteRepositories' ;
1818import ManageReposPanel from 'sentry/views/prevent/preventAI/manageReposPanel' ;
19- import ManageReposToolbar , {
20- ALL_REPOS_VALUE ,
21- } from 'sentry/views/prevent/preventAI/manageReposToolbar' ;
19+ import ManageReposToolbar from 'sentry/views/prevent/preventAI/manageReposToolbar' ;
2220
2321import { FeatureOverview } from './onboarding' ;
2422
@@ -29,7 +27,7 @@ function ManageReposPage({integratedOrgs}: {integratedOrgs: OrganizationIntegrat
2927 const [ selectedOrgId , setSelectedOrgId ] = useState < string > (
3028 ( ) => integratedOrgs [ 0 ] ?. id ?? ''
3129 ) ;
32- const [ selectedRepoId , setSelectedRepoId ] = useState < string > ( ( ) => ALL_REPOS_VALUE ) ;
30+ const [ selectedRepo , setSelectedRepo ] = useState < Repository | null > ( ( ) => null ) ;
3331
3432 const queryResult = useInfiniteRepositories ( {
3533 integrationId : selectedOrgId ,
@@ -46,48 +44,37 @@ function ManageReposPage({integratedOrgs}: {integratedOrgs: OrganizationIntegrat
4644 return found ?? integratedOrgs [ 0 ] ;
4745 } , [ integratedOrgs , selectedOrgId ] ) ;
4846
49- // If the selected repo is not present in the list of repos, use null (for "All Repos")
50- const selectedRepo = useMemo ( ( ) => {
51- if ( selectedRepoId === ALL_REPOS_VALUE ) {
52- return null ;
53- }
54- const found = reposData . find ( repo => repo . id === selectedRepoId ) ;
55- return found ?? null ;
56- } , [ reposData , selectedRepoId ] ) ;
57-
5847 // When the org changes, reset to "All Repos"
5948 const setSelectedOrgIdWithCascadeRepoId = useCallback ( ( orgId : string ) => {
6049 setSelectedOrgId ( orgId ) ;
61- setSelectedRepoId ( ALL_REPOS_VALUE ) ;
50+ setSelectedRepo ( null ) ;
6251 } , [ ] ) ;
6352
6453 const isOrgSelected = ! ! selectedOrg ;
65- const isRepoSelected = selectedRepoId === ALL_REPOS_VALUE || ! ! selectedRepo ;
6654
6755 return (
6856 < Flex direction = "column" maxWidth = "1000px" gap = "xl" >
6957 < Flex align = "center" justify = "between" >
7058 < ManageReposToolbar
7159 integratedOrgs = { integratedOrgs }
7260 selectedOrg = { selectedOrgId }
73- selectedRepo = { selectedRepoId }
74- selectedRepoData = { selectedRepo }
61+ selectedRepo = { selectedRepo }
7562 onOrgChange = { setSelectedOrgIdWithCascadeRepoId }
76- onRepoChange = { setSelectedRepoId }
63+ onRepoChange = { setSelectedRepo }
7764 />
7865 < Flex style = { { transform : 'translateY(-70px)' } } >
7966 < Tooltip
8067 title = "Select an organization and repository to configure settings"
81- disabled = { isOrgSelected && isRepoSelected }
68+ disabled = { isOrgSelected }
8269 position = "left"
8370 >
8471 < Button
8572 borderless
8673 icon = { < IconSettings size = "md" /> }
8774 aria-label = "Settings"
8875 onClick = { ( ) => setIsPanelOpen ( true ) }
89- disabled = { ! isOrgSelected || ! isRepoSelected }
90- tabIndex = { ! isOrgSelected || ! isRepoSelected ? - 1 : 0 }
76+ disabled = { ! isOrgSelected }
77+ tabIndex = { isOrgSelected ? 0 : - 1 }
9178 data-test-id = "manage-repos-settings-button"
9279 />
9380 </ Tooltip >
@@ -141,15 +128,15 @@ function ManageReposPage({integratedOrgs}: {integratedOrgs: OrganizationIntegrat
141128 />
142129 </ Flex >
143130
144- { selectedOrg && ( selectedRepoId === ALL_REPOS_VALUE || selectedRepo ) && (
131+ { selectedOrg && (
145132 < ManageReposPanel
146- key = { `${ selectedOrgId || 'no-org' } -${ selectedRepoId || 'no-repo ' } ` }
133+ key = { `${ selectedOrgId || 'no-org' } -${ selectedRepo ?. id || 'all-repos ' } ` }
147134 collapsed = { ! isPanelOpen }
148135 onClose = { ( ) => setIsPanelOpen ( false ) }
149136 org = { selectedOrg }
150137 repo = { selectedRepo }
151138 allRepos = { reposData }
152- isEditingOrgDefaults = { selectedRepoId === ALL_REPOS_VALUE }
139+ isEditingOrgDefaults = { selectedRepo === null }
153140 />
154141 ) }
155142 </ Flex >
0 commit comments