11
2- import { useState , useCallback , useRef } from 'react' ;
2+ import { useState , useCallback , useRef , useEffect } from 'react' ;
33import type { Repository , LogEntry , Task , GlobalSettings , TaskStep , GitRepository } from '../types' ;
44import { RepoStatus , BuildHealth , LogLevel , TaskStepType , VcsType } from '../types' ;
55
@@ -37,6 +37,11 @@ export const useRepositoryManager = ({ repositories, updateRepository }: { repos
3737 const [ logs , setLogs ] = useState < Record < string , LogEntry [ ] > > ( { } ) ;
3838 const [ isProcessing , setIsProcessing ] = useState < Set < string > > ( new Set ( ) ) ;
3939 const activeExecutionsRef = useRef < Map < string , { stepExecutionId : string | null } > > ( new Map ( ) ) ;
40+ const repositoriesRef = useRef < Repository [ ] > ( repositories ) ;
41+
42+ useEffect ( ( ) => {
43+ repositoriesRef . current = repositories ;
44+ } , [ repositories ] ) ;
4045
4146 const addLogEntry = useCallback ( ( repoId : string , message : string , level : LogLevel ) => {
4247 const newEntry : LogEntry = {
@@ -51,7 +56,7 @@ export const useRepositoryManager = ({ repositories, updateRepository }: { repos
5156 } , [ ] ) ;
5257
5358 const updateRepoStatus = useCallback ( ( repoId : string , status : RepoStatus , buildHealth ?: BuildHealth ) => {
54- const repoToUpdate = repositories . find ( r => r . id === repoId ) ;
59+ const repoToUpdate = repositoriesRef . current . find ( r => r . id === repoId ) ;
5560 if ( repoToUpdate ) {
5661 updateRepository ( {
5762 ...repoToUpdate ,
@@ -60,7 +65,7 @@ export const useRepositoryManager = ({ repositories, updateRepository }: { repos
6065 ...( buildHealth && { buildHealth } ) ,
6166 } ) ;
6267 }
63- } , [ repositories , updateRepository ] ) ;
68+ } , [ updateRepository ] ) ;
6469
6570 const runTask = useCallback ( async (
6671 repo : Repository ,
0 commit comments