Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
bea382f0
Unverified
Commit
bea382f0
authored
Jun 20, 2023
by
Joel
Committed by
GitHub
Jun 20, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: dataset can only choose first page data (#425)
Support infinite scroll loader data.
parent
8b39e489
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
10 deletions
+30
-10
index.tsx
...app/configuration/dataset-config/select-dataset/index.tsx
+30
-10
No files found.
web/app/components/app/configuration/dataset-config/select-dataset/index.tsx
View file @
bea382f0
'use client'
'use client'
import
type
{
FC
}
from
'react'
import
type
{
FC
}
from
'react'
import
React
,
{
useEffect
}
from
'react'
import
React
,
{
useRef
,
useState
}
from
'react'
import
{
useGetState
,
useInfiniteScroll
}
from
'ahooks'
import
cn
from
'classnames'
import
cn
from
'classnames'
import
{
useTranslation
}
from
'react-i18next'
import
{
useTranslation
}
from
'react-i18next'
import
Link
from
'next/link'
import
Link
from
'next/link'
...
@@ -32,14 +33,33 @@ const SelectDataSet: FC<ISelectDataSetProps> = ({
...
@@ -32,14 +33,33 @@ const SelectDataSet: FC<ISelectDataSetProps> = ({
const
[
datasets
,
setDataSets
]
=
React
.
useState
<
DataSet
[]
|
null
>
(
null
)
const
[
datasets
,
setDataSets
]
=
React
.
useState
<
DataSet
[]
|
null
>
(
null
)
const
hasNoData
=
!
datasets
||
datasets
?.
length
===
0
const
hasNoData
=
!
datasets
||
datasets
?.
length
===
0
const
canSelectMulti
=
true
const
canSelectMulti
=
true
useEffect
(()
=>
{
(
async
()
=>
{
const
listRef
=
useRef
<
HTMLDivElement
>
(
null
)
const
{
data
}
=
await
fetchDatasets
({
url
:
'/datasets'
,
params
:
{
page
:
1
}
})
const
[
page
,
setPage
,
getPage
]
=
useGetState
(
1
)
setDataSets
(
data
)
const
[
isNoMore
,
setIsNoMore
]
=
useState
(
false
)
setLoaded
(
true
)
setSelected
(
data
.
filter
(
item
=>
selectedIds
.
includes
(
item
.
id
)))
useInfiniteScroll
(
})()
async
()
=>
{
},
[])
if
(
!
isNoMore
)
{
const
{
data
,
has_more
}
=
await
fetchDatasets
({
url
:
'/datasets'
,
params
:
{
page
}
})
setPage
(
getPage
()
+
1
)
setIsNoMore
(
!
has_more
)
const
newList
=
[...(
datasets
||
[]),
...
data
]
setDataSets
(
newList
)
setLoaded
(
true
)
setSelected
(
newList
.
filter
(
item
=>
selectedIds
.
includes
(
item
.
id
)))
}
return
{
list
:
[]
}
},
{
target
:
listRef
,
isNoMore
:
()
=>
{
return
isNoMore
},
reloadDeps
:
[
isNoMore
],
},
)
const
toggleSelect
=
(
dataSet
:
DataSet
)
=>
{
const
toggleSelect
=
(
dataSet
:
DataSet
)
=>
{
const
isSelected
=
selected
.
some
(
item
=>
item
.
id
===
dataSet
.
id
)
const
isSelected
=
selected
.
some
(
item
=>
item
.
id
===
dataSet
.
id
)
if
(
isSelected
)
{
if
(
isSelected
)
{
...
@@ -83,7 +103,7 @@ const SelectDataSet: FC<ISelectDataSetProps> = ({
...
@@ -83,7 +103,7 @@ const SelectDataSet: FC<ISelectDataSetProps> = ({
{
datasets
&&
datasets
?.
length
>
0
&&
(
{
datasets
&&
datasets
?.
length
>
0
&&
(
<>
<>
<
div
className=
'mt-7 space-y-1 max-h-[286px] overflow-y-auto'
>
<
div
ref=
{
listRef
}
className=
'mt-7 space-y-1 max-h-[286px] overflow-y-auto'
>
{
datasets
.
map
(
item
=>
(
{
datasets
.
map
(
item
=>
(
<
div
<
div
key=
{
item
.
id
}
key=
{
item
.
id
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment