@@ -2,12 +2,13 @@ import { useDispatch, useSelector } from "react-redux";
2
2
import { useParams } from "react-router-dom" ;
3
3
import { HomeBreadcrumbType , HomeLayout } from "./HomeLayout" ;
4
4
import { useEffect , useState } from "react" ;
5
- import { fetchFolderElements } from "../../redux/reduxActions/folderActions" ;
6
- import { FolderMeta } from "../../constants/applicationConstants" ;
5
+ import { ApplicationMeta , FolderMeta } from "../../constants/applicationConstants" ;
7
6
import { buildFolderUrl } from "../../constants/routesURL" ;
8
7
import { folderElementsSelector , foldersSelector } from "../../redux/selectors/folderSelector" ;
9
8
import { Helmet } from "react-helmet" ;
10
9
import { trans } from "i18n" ;
10
+ import { ApplicationPaginationType } from "@lowcoder-ee/util/pagination/type" ;
11
+ import { fetchFolderElements } from "@lowcoder-ee/util/pagination/axios" ;
11
12
12
13
function getBreadcrumbs (
13
14
folder : FolderMeta ,
@@ -30,13 +31,25 @@ function getBreadcrumbs(
30
31
return breadcrumb ;
31
32
}
32
33
34
+ interface ElementsState {
35
+ elements : ApplicationMeta [ ] ;
36
+ total : number ;
37
+ }
38
+
33
39
export function FolderView ( ) {
34
40
const { folderId } = useParams < { folderId : string } > ( ) ;
35
41
42
+ const [ elements , setElements ] = useState < ElementsState > ( { elements : [ ] , total : 0 } ) ;
43
+ const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
44
+ const [ pageSize , setPageSize ] = useState ( 10 ) ;
45
+ const [ searchValues , setSearchValues ] = useState ( "" ) ;
46
+ const [ typeFilter , setTypeFilter ] = useState < number > ( 0 ) ;
47
+ const [ modify , setModify ] = useState ( true ) ;
48
+ const [ searchValue , setSearchValue ] = useState ( "" ) ;
49
+
36
50
const dispatch = useDispatch ( ) ;
37
- const [ searchValue , setSearchValue ] = useState ( "" )
38
51
39
- const elements = useSelector ( folderElementsSelector ) ;
52
+ const element = useSelector ( folderElementsSelector ) ;
40
53
const allFolders = useSelector ( foldersSelector ) ;
41
54
42
55
const folder = allFolders . filter ( ( f ) => f . folderId === folderId ) [ 0 ] || { } ;
@@ -47,16 +60,60 @@ export function FolderView() {
47
60
} ,
48
61
] ) ;
49
62
50
- useEffect ( ( ) => {
51
- setTimeout ( ( ) => {
52
- dispatch ( fetchFolderElements ( { folderId : folderId } ) ) ;
53
- } , 100 ) ;
54
- } , [ folderId ] ) ;
63
+ useEffect ( ( ) => {
64
+ try {
65
+ fetchFolderElements ( {
66
+ id : folderId ,
67
+ pageNum :currentPage ,
68
+ pageSize :pageSize ,
69
+ applicationType : ApplicationPaginationType [ typeFilter ] ,
70
+ name : searchValues ,
71
+ } ) . then (
72
+ ( data : any ) => {
73
+ if ( data . success ) {
74
+ setElements ( { elements : data . data || [ ] , total : data . total || 1 } )
75
+ }
76
+ else
77
+ console . error ( "ERROR: fetchFolderElements" , data . error )
78
+ }
79
+ ) ;
80
+ } catch ( error ) {
81
+ console . error ( 'Failed to fetch data:' , error ) ;
82
+ }
83
+ } , [ currentPage , pageSize , searchValues , typeFilter , modify ] ) ;
84
+
85
+ useEffect ( ( ) => {
86
+ if ( searchValues !== "" )
87
+ setCurrentPage ( 1 ) ;
88
+ } , [ searchValues ]
89
+ ) ;
90
+
91
+ useEffect ( ( ) => {
92
+ const timer = setTimeout ( ( ) => {
93
+ if ( searchValue . length > 2 || searchValue === "" )
94
+ setSearchValues ( searchValue )
95
+ } , 500 ) ;
96
+ return ( ) => clearTimeout ( timer ) ;
97
+ } , [ searchValue ] )
55
98
56
99
return (
57
100
< >
58
101
< Helmet > { < title > { trans ( "home.yourFolders" ) } </ title > } </ Helmet >
59
- < HomeLayout elements = { elements [ folderId ] } mode = { "folder" } breadcrumb = { breadcrumbs } setSearchValue = { setSearchValue } searchValue = { searchValue } />
102
+ < HomeLayout
103
+ elements = { elements . elements }
104
+ mode = { "folder" }
105
+ breadcrumb = { breadcrumbs }
106
+ currentPage = { currentPage }
107
+ setCurrentPage = { setCurrentPage }
108
+ pageSize = { pageSize }
109
+ setPageSize = { setPageSize }
110
+ total = { elements . total }
111
+ setSearchValue = { setSearchValue }
112
+ searchValue = { searchValue }
113
+ setTypeFilterPagination = { setTypeFilter }
114
+ setModify = { setModify }
115
+ modify = { modify }
116
+ />
60
117
</ >
61
118
) ;
62
119
}
0 commit comments