Skip to content

Commit 1f72916

Browse files
committed
fix: use selected provider
1 parent 9f581a7 commit 1f72916

2 files changed

Lines changed: 43 additions & 7 deletions

File tree

src/components/ui/ProjectCreateModal.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,13 @@ const CreateProjectModal: React.FC<Props> = ({
6161
setCurrentCSP(cspString);
6262
providerManager.setCurrentProvider(selectedProvider);
6363

64-
// 3. 프로젝트 에디터 페이지로 이동
65-
navigate(`/project/${project.id}`);
64+
// 3. 프로젝트 에디터 페이지로 이동 (프로바이더 정보를 state로 전달)
65+
navigate(`/project/${project.id}`, {
66+
state: {
67+
projectName: name,
68+
initialProvider: cspString,
69+
}
70+
});
6671
onClose();
6772
} catch (err) {
6873
setError(err instanceof Error ? err.message : "생성 실패");

src/hooks/useProjectLoader.ts

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)