Fix/dataset page may redirect to apps if it still getting user info and workspace info (#21221)
This commit is contained in:
@@ -81,7 +81,7 @@ const Datasets = ({
|
|||||||
currentContainer?.removeEventListener('scroll', onScroll)
|
currentContainer?.removeEventListener('scroll', onScroll)
|
||||||
onScroll.cancel()
|
onScroll.cancel()
|
||||||
}
|
}
|
||||||
}, [onScroll])
|
}, [containerRef, onScroll])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav className='grid shrink-0 grow grid-cols-1 content-start gap-4 px-12 pt-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4'>
|
<nav className='grid shrink-0 grow grid-cols-1 content-start gap-4 px-12 pt-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4'>
|
||||||
|
@@ -5,34 +5,34 @@ import {
|
|||||||
RiAddLine,
|
RiAddLine,
|
||||||
RiArrowRightLine,
|
RiArrowRightLine,
|
||||||
} from '@remixicon/react'
|
} from '@remixicon/react'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
const CreateAppCard = (
|
type CreateAppCardProps = {
|
||||||
{
|
ref?: React.Ref<HTMLAnchorElement>
|
||||||
ref,
|
}
|
||||||
..._
|
|
||||||
},
|
const CreateAppCard = ({ ref }: CreateAppCardProps) => {
|
||||||
) => {
|
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='bg-background-default-dimm flex min-h-[160px] flex-col rounded-xl border-[0.5px]
|
<div className='bg-background-default-dimm flex min-h-[160px] flex-col rounded-xl border-[0.5px]
|
||||||
border-components-panel-border transition-all duration-200 ease-in-out'
|
border-components-panel-border transition-all duration-200 ease-in-out'
|
||||||
>
|
>
|
||||||
<a ref={ref} className='group flex grow cursor-pointer items-start p-4' href={`${basePath}/datasets/create`}>
|
<Link ref={ref} className='group flex grow cursor-pointer items-start p-4' href={`${basePath}/datasets/create`}>
|
||||||
<div className='flex items-center gap-3'>
|
<div className='flex items-center gap-3'>
|
||||||
<div className='flex h-10 w-10 items-center justify-center rounded-lg border border-dashed border-divider-regular bg-background-default-lighter
|
<div className='flex h-10 w-10 items-center justify-center rounded-lg border border-dashed border-divider-regular bg-background-default-lighter
|
||||||
p-2 group-hover:border-solid group-hover:border-effects-highlight group-hover:bg-background-default-dodge'
|
p-2 group-hover:border-solid group-hover:border-effects-highlight group-hover:bg-background-default-dodge'
|
||||||
>
|
>
|
||||||
<RiAddLine className='h-4 w-4 text-text-tertiary group-hover:text-text-accent'/>
|
<RiAddLine className='h-4 w-4 text-text-tertiary group-hover:text-text-accent' />
|
||||||
</div>
|
</div>
|
||||||
<div className='system-md-semibold text-text-secondary group-hover:text-text-accent'>{t('dataset.createDataset')}</div>
|
<div className='system-md-semibold text-text-secondary group-hover:text-text-accent'>{t('dataset.createDataset')}</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</Link>
|
||||||
<div className='system-xs-regular p-4 pt-0 text-text-tertiary'>{t('dataset.createDatasetIntro')}</div>
|
<div className='system-xs-regular p-4 pt-0 text-text-tertiary'>{t('dataset.createDatasetIntro')}</div>
|
||||||
<a className='group flex cursor-pointer items-center gap-1 rounded-b-xl border-t-[0.5px] border-divider-subtle p-4' href={`${basePath}/datasets/connect`}>
|
<Link className='group flex cursor-pointer items-center gap-1 rounded-b-xl border-t-[0.5px] border-divider-subtle p-4' href={`${basePath}/datasets/connect`}>
|
||||||
<div className='system-xs-medium text-text-tertiary group-hover:text-text-accent'>{t('dataset.connectDataset')}</div>
|
<div className='system-xs-medium text-text-tertiary group-hover:text-text-accent'>{t('dataset.connectDataset')}</div>
|
||||||
<RiArrowRightLine className='h-3.5 w-3.5 text-text-tertiary group-hover:text-text-accent' />
|
<RiArrowRightLine className='h-3.5 w-3.5 text-text-tertiary group-hover:text-text-accent' />
|
||||||
</a>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -8,15 +8,17 @@ import { useRouter } from 'next/navigation'
|
|||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
export default function DatasetsLayout({ children }: { children: React.ReactNode }) {
|
export default function DatasetsLayout({ children }: { children: React.ReactNode }) {
|
||||||
const { isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator } = useAppContext()
|
const { isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, currentWorkspace, isLoadingCurrentWorkspace } = useAppContext()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isCurrentWorkspaceEditor && !isCurrentWorkspaceDatasetOperator)
|
if (isLoadingCurrentWorkspace || !currentWorkspace.id)
|
||||||
|
return
|
||||||
|
if (!(isCurrentWorkspaceEditor || isCurrentWorkspaceDatasetOperator))
|
||||||
router.replace('/apps')
|
router.replace('/apps')
|
||||||
}, [isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, router])
|
}, [isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, isLoadingCurrentWorkspace, currentWorkspace, router])
|
||||||
|
|
||||||
if (!isCurrentWorkspaceEditor && !isCurrentWorkspaceDatasetOperator)
|
if (isLoadingCurrentWorkspace || !(isCurrentWorkspaceEditor || isCurrentWorkspaceDatasetOperator))
|
||||||
return <Loading type='app' />
|
return <Loading type='app' />
|
||||||
return (
|
return (
|
||||||
<ExternalKnowledgeApiProvider>
|
<ExternalKnowledgeApiProvider>
|
||||||
|
Reference in New Issue
Block a user