@@ -9,6 +9,7 @@ export const useProjectLoader = () => {
99 const { id : projectId } = useParams < { id : string } > ( ) ;
1010 const location = useLocation ( ) ;
1111 const projectNameFromNav = location . state ?. projectName ;
12+ const initialProviderFromNav = location . state ?. initialProvider as 'AWS' | 'GCP' | 'Azure' | undefined ;
1213
1314 const setDroppedBlocks = useBlockStore ( ( state ) => state . setDroppedBlocks ) ;
1415 const setConnections = useConnectionStore ( ( state ) => state . setConnections ) ;
@@ -22,6 +23,27 @@ export const useProjectLoader = () => {
2223 }
2324 } , [ projectNameFromNav , setProjectName ] ) ;
2425
26+ // 초기 프로바이더 설정 (프로젝트 생성 직후)
27+ useEffect ( ( ) => {
28+ if ( initialProviderFromNav ) {
29+ console . log ( '🆕 [ProjectLoader] Setting initial provider from navigation:' , initialProviderFromNav ) ;
30+ setCurrentCSP ( initialProviderFromNav ) ;
31+
32+ let providerType : CloudProviderType ;
33+ switch ( initialProviderFromNav ) {
34+ case 'GCP' :
35+ providerType = CloudProviderType . GCP ;
36+ break ;
37+ case 'Azure' :
38+ providerType = CloudProviderType . AZURE ;
39+ break ;
40+ default :
41+ providerType = CloudProviderType . AWS ;
42+ }
43+ providerManager . setCurrentProvider ( providerType ) ;
44+ }
45+ } , [ initialProviderFromNav , setCurrentCSP ] ) ;
46+
2547 // 프로젝트 데이터 로드
2648 useEffect ( ( ) => {
2749 if ( ! projectId ) return ;
@@ -54,15 +76,24 @@ export const useProjectLoader = () => {
5476 }
5577
5678 // 프로젝트의 클라우드 프로바이더 설정 불러오기
57- const projectProvider = res ?. data ?. provider ?? res ?. provider ?? 'AWS' ;
58- console . log ( '🔄 [ProjectEditor] Loading project with provider:' , projectProvider ) ;
79+ const projectProvider = res ?. data ?. provider ?? res ?. provider ;
80+
81+ // 초기 프로바이더가 navigation state로 전달되었으면 그것을 우선 사용
82+ // (프로젝트 생성 직후에는 서버에 provider가 없을 수 있음)
83+ const finalProvider = initialProviderFromNav || projectProvider || 'AWS' ;
84+
85+ console . log ( '🔄 [ProjectLoader] Provider priority:' , {
86+ fromNav : initialProviderFromNav ,
87+ fromServer : projectProvider ,
88+ final : finalProvider
89+ } ) ;
5990
6091 // 프로바이더 설정 (UI 상태와 프로바이더 매니저 모두 업데이트)
61- setCurrentCSP ( projectProvider as 'AWS' | 'GCP' | 'Azure' ) ;
92+ setCurrentCSP ( finalProvider as 'AWS' | 'GCP' | 'Azure' ) ;
6293
6394 // 프로바이더 매니저에서도 현재 프로바이더 설정
6495 let providerType : CloudProviderType ;
65- switch ( projectProvider ) {
96+ switch ( finalProvider ) {
6697 case 'GCP' :
6798 providerType = CloudProviderType . GCP ;
6899 break ;
@@ -79,7 +110,7 @@ export const useProjectLoader = () => {
79110 } ;
80111
81112 loadBlocksFromAPI ( ) ;
82- } , [ projectId , setDroppedBlocks , setConnections , setCurrentCSP ] ) ;
113+ } , [ projectId , setDroppedBlocks , setConnections , setCurrentCSP , initialProviderFromNav ] ) ;
83114
84115 return { projectId } ;
85116} ;
0 commit comments