瀏覽代碼

fix: handle configure button for notion internal integration (#21412)

tags/1.5.1
baonudesifeizhai 4 月之前
父節點
當前提交
8516d15a4e
沒有連結到貢獻者的電子郵件帳戶。

+ 1
- 0
.gitignore 查看文件

@@ -214,3 +214,4 @@ mise.toml

# AI Assistant
.roo/
api/.env.backup

+ 1
- 1
api/controllers/console/auth/data_source_oauth.py 查看文件

@@ -41,7 +41,7 @@ class OAuthDataSource(Resource):
if not internal_secret:
return ({"error": "Internal secret is not set"},)
oauth_provider.save_internal_access_token(internal_secret)
return {"data": ""}
return {"data": "internal"}
else:
auth_url = oauth_provider.get_authorization_url()
return {"data": auth_url}, 200

+ 1
- 1
dev/mypy-check 查看文件

@@ -7,4 +7,4 @@ cd "$SCRIPT_DIR/.."

# run mypy checks
uv run --directory api --dev --with pip \
python -m mypy --install-types --non-interactive ./
python -m mypy --install-types --non-interactive --exclude venv ./

+ 16
- 3
web/app/components/header/account-setting/data-source-page/data-source-notion/index.tsx 查看文件

@@ -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}

+ 1
- 0
web/i18n/en-US/common.ts 查看文件

@@ -456,6 +456,7 @@ const translation = {
connected: 'Connected',
disconnected: 'Disconnected',
changeAuthorizedPages: 'Change authorized pages',
integratedAlert: 'Notion is integrated via internal credential, no need to re-authorize.',
pagesAuthorized: 'Pages authorized',
sync: 'Sync',
remove: 'Remove',

Loading…
取消
儲存