@ -9,6 +9,8 @@ import { useAppContext } from '@/context/app-context'
import { fetchNotionConnection } from '@/service/common'
import NotionIcon from '@/app/components/base/notion-icon'
import { noop } from 'lodash-es'
import { useTranslation } from 'react-i18next'
import Toast from '@/app/components/base/toast'
const Icon : FC < {
src : string
@ -33,6 +35,7 @@ const DataSourceNotion: FC<Props> = ({
const { isCurrentWorkspaceManager } = useAppContext ( )
const [ canConnectNotion , setCanConnectNotion ] = useState ( false )
const { data } = useSWR ( canConnectNotion ? '/oauth/data-source/notion' : null , fetchNotionConnection )
const { t } = useTranslation ( )
const connected = ! ! workspaces . length
@ -51,9 +54,19 @@ const DataSourceNotion: FC<Props> = ({
}
useEffect ( ( ) = > {
if ( data ? . data )
window . location . href = data . data
} , [ data ] )
if ( data && 'data' in data ) {
if ( data . data && typeof data . data === 'string' && data . data . startsWith ( 'http' ) ) {
window . location . href = data . data
}
else if ( data . data === 'internal' ) {
Toast . notify ( {
type : 'info' ,
message : t ( 'common.dataSource.notion.integratedAlert' ) ,
} )
}
}
} , [ data , t ] )
return (
< Panel
type = { DataSourceType . notion }