Skip to content

Commit 0c53cb5

Browse files
authored
Navigate to configurations page when creating/opening project (#580)
1 parent 03854d6 commit 0c53cb5

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

src/main/frontend/app/routes/projectlanding/project-landing.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Sidebar from '~/routes/projectlanding/sidebar'
66
import Toolbar from '~/routes/projectlanding/toolbar'
77
import { fetchInstanceConfigurations, type FFConfiguration } from '~/services/frank-framework-service'
88
import { useProjectStore } from '~/stores/project-store'
9+
import type { ConfigurationProject } from '~/types/project.types'
910
import { ApiError } from '~/utils/api'
1011
import { logApiError } from '~/utils/logger'
1112
import { getParentPath, normalizePath } from '~/utils/path-utils'
@@ -95,20 +96,27 @@ export default function ProjectLanding() {
9596
}
9697
}, [isLocalEnvironment])
9798

99+
const openProjectAndNavigate = useCallback(
100+
(project: ConfigurationProject) => {
101+
setProject(project)
102+
navigate(`/configurations`)
103+
},
104+
[navigate, setProject],
105+
)
106+
98107
const handleOpenProject = useCallback(
99108
async (rootPath: string) => {
100109
setIsOpeningProject(true)
101110
try {
102111
const project = await openProject(rootPath)
103-
setProject(project)
104-
navigate(`/studio`)
112+
openProjectAndNavigate(project)
105113
} catch (error) {
106114
showErrorToast(error instanceof Error ? error.message : 'Failed to open project')
107115
} finally {
108116
setIsOpeningProject(false)
109117
}
110118
},
111-
[navigate, setProject],
119+
[openProjectAndNavigate],
112120
)
113121

114122
const onOpenFolder = async (selectedPath: string) => {
@@ -120,9 +128,8 @@ export default function ProjectLanding() {
120128
setIsOpeningProject(true)
121129
try {
122130
const project = await createProject(name, rootPath)
123-
setProject(project)
124131
setIsModalOpen(false)
125-
navigate(`/studio`)
132+
openProjectAndNavigate(project)
126133
} catch (error) {
127134
showErrorToast(error instanceof Error ? error.message : 'Failed to create project')
128135
} finally {
@@ -134,9 +141,8 @@ export default function ProjectLanding() {
134141
setIsOpeningProject(true)
135142
try {
136143
const project = await cloneProject(repoUrl, localPath, token)
137-
setProject(project)
138144
setIsCloneModalOpen(false)
139-
navigate(`/studio`)
145+
openProjectAndNavigate(project)
140146
} catch (error) {
141147
showErrorToast(error instanceof Error ? error.message : 'Failed to clone project from GitHub')
142148
} finally {
@@ -169,9 +175,8 @@ export default function ProjectLanding() {
169175
setIsOpeningProject(true)
170176
try {
171177
const project = await importProjectFolder(files)
172-
setProject(project)
178+
openProjectAndNavigate(project)
173179
refetch()
174-
navigate(`/studio`)
175180
} catch (error) {
176181
showErrorToast(error instanceof Error ? error.message : 'Failed to import project')
177182
} finally {

0 commit comments

Comments
 (0)