Fix/upload document limit (#1033)

This commit is contained in:
zxhlyh
2023-08-28 10:53:45 +08:00
committed by GitHub
parent 934def5fcc
commit a7415ecfd8
8 changed files with 57 additions and 12 deletions

View File

@@ -1,4 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useContext } from 'use-context-selector'
import useSWR from 'swr'
import cn from 'classnames'
import s from './base.module.css'
@@ -9,6 +11,7 @@ import { preImportNotionPages } from '@/service/datasets'
import AccountSetting from '@/app/components/header/account-setting'
import { NotionConnector } from '@/app/components/datasets/create/step-one'
import type { DataSourceNotionPage, DataSourceNotionPageMap, DataSourceNotionWorkspace } from '@/models/common'
import { ToastContext } from '@/app/components/base/toast'
export type NotionPageSelectorValue = DataSourceNotionPage & { workspace_id: string }
@@ -19,6 +22,8 @@ type NotionPageSelectorProps = {
previewPageId?: string
onPreview?: (selectedPage: NotionPageSelectorValue) => void
datasetId?: string
countLimit: number
countUsed: number
}
const NotionPageSelector = ({
@@ -28,7 +33,11 @@ const NotionPageSelector = ({
previewPageId,
onPreview,
datasetId = '',
countLimit,
countUsed,
}: NotionPageSelectorProps) => {
const { t } = useTranslation()
const { notify } = useContext(ToastContext)
const { data, mutate } = useSWR({ url: '/notion/pre-import/pages', datasetId }, preImportNotionPages)
const [prevData, setPrevData] = useState(data)
const [searchValue, setSearchValue] = useState('')
@@ -71,9 +80,13 @@ const NotionPageSelector = ({
const handleSelectWorkspace = useCallback((workspaceId: string) => {
setCurrentWorkspaceId(workspaceId)
}, [])
const handleSelecPages = (selectedPagesId: Set<string>) => {
setSelectedPagesId(new Set(Array.from(selectedPagesId)))
const selectedPages = Array.from(selectedPagesId).map(pageId => getPagesMapAndSelectedPagesId[0][pageId])
const handleSelecPages = (newSelectedPagesId: Set<string>) => {
const selectedPages = Array.from(newSelectedPagesId).map(pageId => getPagesMapAndSelectedPagesId[0][pageId])
if (selectedPages.length > countLimit - countUsed) {
notify({ type: 'error', message: t('datasetCreation.stepOne.overCountLimit', { countLimit }) })
return false
}
setSelectedPagesId(new Set(Array.from(newSelectedPagesId)))
onSelect(selectedPages)
}
const handlePreviewPage = (previewPageId: string) => {

View File

@@ -228,29 +228,30 @@ const PageSelector = ({
setDataList(newDataList)
}
const copyValue = new Set([...value])
const handleCheck = (index: number) => {
const current = currentDataList[index]
const pageId = current.page_id
const currentWithChildrenAndDescendants = listMapWithChildrenAndDescendants[pageId]
if (value.has(pageId)) {
if (copyValue.has(pageId)) {
if (!searchValue) {
for (const item of currentWithChildrenAndDescendants.descendants)
value.delete(item)
copyValue.delete(item)
}
value.delete(pageId)
copyValue.delete(pageId)
}
else {
if (!searchValue) {
for (const item of currentWithChildrenAndDescendants.descendants)
value.add(item)
copyValue.add(item)
}
value.add(pageId)
copyValue.add(pageId)
}
onSelect(new Set([...value]))
onSelect(new Set([...copyValue]))
}
const handlePreview = (index: number) => {