@@ -76,6 +76,42 @@ export const useProjectStore = create<ProjectState>()(
7676 }
7777 } ) ;
7878
79+ const debouncedFetchProjects = debounce ( async ( ) => {
80+ try {
81+ set ( ( state ) => ( {
82+ projectsContext : {
83+ ...state . projectsContext ,
84+ loading : true ,
85+ error : null ,
86+ } ,
87+ } ) ) ;
88+ const projectsList = await projectApiClient . list ( ) ;
89+ set ( ( state ) => ( {
90+ projectsContext : {
91+ ...state . projectsContext ,
92+ data : projectsList ,
93+ error : null ,
94+ } ,
95+ } ) ) ;
96+ } catch ( err ) {
97+ const errorMessage = handleApiError ( err ) ;
98+ set ( ( state ) => ( {
99+ projectsContext : {
100+ ...state . projectsContext ,
101+ error : errorMessage ,
102+ } ,
103+ } ) ) ;
104+ console . error ( 'Error loading projects:' , err ) ;
105+ } finally {
106+ set ( ( state ) => ( {
107+ projectsContext : {
108+ ...state . projectsContext ,
109+ loading : false ,
110+ } ,
111+ } ) ) ;
112+ }
113+ } ) ;
114+
79115 return {
80116 // Initial state
81117 currentProjectName : null ,
@@ -92,39 +128,7 @@ export const useProjectStore = create<ProjectState>()(
92128 } ,
93129
94130 fetchProjects : async ( ) => {
95- try {
96- set ( ( state ) => ( {
97- projectsContext : {
98- ...state . projectsContext ,
99- loading : true ,
100- error : null ,
101- } ,
102- } ) ) ;
103- const projectsList = await projectApiClient . list ( ) ;
104- set ( ( state ) => ( {
105- projectsContext : {
106- ...state . projectsContext ,
107- data : projectsList ,
108- error : null ,
109- } ,
110- } ) ) ;
111- } catch ( err ) {
112- const errorMessage = handleApiError ( err ) ;
113- set ( ( state ) => ( {
114- projectsContext : {
115- ...state . projectsContext ,
116- error : errorMessage ,
117- } ,
118- } ) ) ;
119- console . error ( 'Error loading projects:' , err ) ;
120- } finally {
121- set ( ( state ) => ( {
122- projectsContext : {
123- ...state . projectsContext ,
124- loading : false ,
125- } ,
126- } ) ) ;
127- }
131+ debouncedFetchProjects ( ) ;
128132 } ,
129133
130134 clearErrors : ( ) => {
0 commit comments