fix: unexpected redirection when landing at workflow (#22932)
This commit is contained in:
@@ -42,7 +42,7 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
|||||||
const pathname = usePathname()
|
const pathname = usePathname()
|
||||||
const media = useBreakpoints()
|
const media = useBreakpoints()
|
||||||
const isMobile = media === MediaType.mobile
|
const isMobile = media === MediaType.mobile
|
||||||
const { isCurrentWorkspaceEditor, isLoadingCurrentWorkspace } = useAppContext()
|
const { isCurrentWorkspaceEditor, isLoadingCurrentWorkspace, currentWorkspace } = useAppContext()
|
||||||
const { appDetail, setAppDetail, setAppSiderbarExpand } = useStore(useShallow(state => ({
|
const { appDetail, setAppDetail, setAppSiderbarExpand } = useStore(useShallow(state => ({
|
||||||
appDetail: state.appDetail,
|
appDetail: state.appDetail,
|
||||||
setAppDetail: state.setAppDetail,
|
setAppDetail: state.setAppDetail,
|
||||||
@@ -106,7 +106,6 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
|||||||
// if ((appDetail.mode === 'advanced-chat' || appDetail.mode === 'workflow') && (pathname).endsWith('workflow'))
|
// if ((appDetail.mode === 'advanced-chat' || appDetail.mode === 'workflow') && (pathname).endsWith('workflow'))
|
||||||
// setAppSiderbarExpand('collapse')
|
// setAppSiderbarExpand('collapse')
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [appDetail, isMobile])
|
}, [appDetail, isMobile])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -120,11 +119,10 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
|||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
setIsLoadingAppDetail(false)
|
setIsLoadingAppDetail(false)
|
||||||
})
|
})
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [appId, pathname])
|
}, [appId, pathname])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!appDetailRes || isLoadingCurrentWorkspace || isLoadingAppDetail)
|
if (!appDetailRes || !currentWorkspace.id || isLoadingCurrentWorkspace || isLoadingAppDetail)
|
||||||
return
|
return
|
||||||
const res = appDetailRes
|
const res = appDetailRes
|
||||||
// redirection
|
// redirection
|
||||||
@@ -143,7 +141,6 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
|||||||
setAppDetail({ ...res, enable_sso: false })
|
setAppDetail({ ...res, enable_sso: false })
|
||||||
setNavigation(getNavigations(appId, isCurrentWorkspaceEditor, res.mode))
|
setNavigation(getNavigations(appId, isCurrentWorkspaceEditor, res.mode))
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [appDetailRes, isCurrentWorkspaceEditor, isLoadingAppDetail, isLoadingCurrentWorkspace])
|
}, [appDetailRes, isCurrentWorkspaceEditor, isLoadingAppDetail, isLoadingCurrentWorkspace])
|
||||||
|
|
||||||
useUnmount(() => {
|
useUnmount(() => {
|
||||||
|
@@ -82,6 +82,7 @@ import { supportFunctionCall } from '@/utils/tool-call'
|
|||||||
import { MittProvider } from '@/context/mitt-context'
|
import { MittProvider } from '@/context/mitt-context'
|
||||||
import { fetchAndMergeValidCompletionParams } from '@/utils/completion-params'
|
import { fetchAndMergeValidCompletionParams } from '@/utils/completion-params'
|
||||||
import Toast from '@/app/components/base/toast'
|
import Toast from '@/app/components/base/toast'
|
||||||
|
import { useAppContext } from '@/context/app-context'
|
||||||
|
|
||||||
type PublishConfig = {
|
type PublishConfig = {
|
||||||
modelConfig: ModelConfig
|
modelConfig: ModelConfig
|
||||||
@@ -91,6 +92,8 @@ type PublishConfig = {
|
|||||||
const Configuration: FC = () => {
|
const Configuration: FC = () => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { notify } = useContext(ToastContext)
|
const { notify } = useContext(ToastContext)
|
||||||
|
const { isLoadingCurrentWorkspace, currentWorkspace } = useAppContext()
|
||||||
|
|
||||||
const { appDetail, showAppConfigureFeaturesModal, setAppSiderbarExpand, setShowAppConfigureFeaturesModal } = useAppStore(useShallow(state => ({
|
const { appDetail, showAppConfigureFeaturesModal, setAppSiderbarExpand, setShowAppConfigureFeaturesModal } = useAppStore(useShallow(state => ({
|
||||||
appDetail: state.appDetail,
|
appDetail: state.appDetail,
|
||||||
setAppSiderbarExpand: state.setAppSiderbarExpand,
|
setAppSiderbarExpand: state.setAppSiderbarExpand,
|
||||||
@@ -693,7 +696,6 @@ const Configuration: FC = () => {
|
|||||||
setHasFetchedDetail(true)
|
setHasFetchedDetail(true)
|
||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [appId])
|
}, [appId])
|
||||||
|
|
||||||
const promptEmpty = (() => {
|
const promptEmpty = (() => {
|
||||||
@@ -843,7 +845,7 @@ const Configuration: FC = () => {
|
|||||||
setAppSiderbarExpand('collapse')
|
setAppSiderbarExpand('collapse')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading || isLoadingCurrentWorkspace || !currentWorkspace.id) {
|
||||||
return <div className='flex h-full items-center justify-center'>
|
return <div className='flex h-full items-center justify-center'>
|
||||||
<Loading type='area' />
|
<Loading type='area' />
|
||||||
</div>
|
</div>
|
||||||
|
@@ -19,6 +19,7 @@ import { FeaturesProvider } from '@/app/components/base/features'
|
|||||||
import type { Features as FeaturesData } from '@/app/components/base/features/types'
|
import type { Features as FeaturesData } from '@/app/components/base/features/types'
|
||||||
import { FILE_EXTS } from '@/app/components/base/prompt-editor/constants'
|
import { FILE_EXTS } from '@/app/components/base/prompt-editor/constants'
|
||||||
import { fetchFileUploadConfig } from '@/service/common'
|
import { fetchFileUploadConfig } from '@/service/common'
|
||||||
|
import { useAppContext } from '@/context/app-context'
|
||||||
import WorkflowWithDefaultContext from '@/app/components/workflow'
|
import WorkflowWithDefaultContext from '@/app/components/workflow'
|
||||||
import {
|
import {
|
||||||
WorkflowContextProvider,
|
WorkflowContextProvider,
|
||||||
@@ -31,6 +32,7 @@ const WorkflowAppWithAdditionalContext = () => {
|
|||||||
data,
|
data,
|
||||||
isLoading,
|
isLoading,
|
||||||
} = useWorkflowInit()
|
} = useWorkflowInit()
|
||||||
|
const { isLoadingCurrentWorkspace, currentWorkspace } = useAppContext()
|
||||||
const { data: fileUploadConfigResponse } = useSWR({ url: '/files/upload' }, fetchFileUploadConfig)
|
const { data: fileUploadConfigResponse } = useSWR({ url: '/files/upload' }, fetchFileUploadConfig)
|
||||||
|
|
||||||
const nodesData = useMemo(() => {
|
const nodesData = useMemo(() => {
|
||||||
@@ -46,7 +48,7 @@ const WorkflowAppWithAdditionalContext = () => {
|
|||||||
return []
|
return []
|
||||||
}, [data])
|
}, [data])
|
||||||
|
|
||||||
if (!data || isLoading) {
|
if (!data || isLoading || isLoadingCurrentWorkspace || !currentWorkspace.id) {
|
||||||
return (
|
return (
|
||||||
<div className='relative flex h-full w-full items-center justify-center'>
|
<div className='relative flex h-full w-full items-center justify-center'>
|
||||||
<Loading />
|
<Loading />
|
||||||
|
Reference in New Issue
Block a user