@@ -2,12 +2,13 @@ import { useDispatch, useSelector } from "react-redux";
22import { useParams } from "react-router-dom" ;
33import { HomeBreadcrumbType , HomeLayout } from "./HomeLayout" ;
44import { useEffect , useState } from "react" ;
5- import { fetchFolderElements } from "../../redux/reduxActions/folderActions" ;
6- import { FolderMeta } from "../../constants/applicationConstants" ;
5+ import { ApplicationMeta , FolderMeta } from "../../constants/applicationConstants" ;
76import { buildFolderUrl } from "../../constants/routesURL" ;
87import { folderElementsSelector , foldersSelector } from "../../redux/selectors/folderSelector" ;
98import { Helmet } from "react-helmet" ;
109import { trans } from "i18n" ;
10+ import { ApplicationPaginationType } from "@lowcoder-ee/util/pagination/type" ;
11+ import { fetchFolderElements } from "@lowcoder-ee/util/pagination/axios" ;
1112
1213function getBreadcrumbs (
1314 folder : FolderMeta ,
@@ -30,13 +31,25 @@ function getBreadcrumbs(
3031 return breadcrumb ;
3132}
3233
34+ interface ElementsState {
35+ elements : ApplicationMeta [ ] ;
36+ total : number ;
37+ }
38+
3339export function FolderView ( ) {
3440 const { folderId } = useParams < { folderId : string } > ( ) ;
3541
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+
3650 const dispatch = useDispatch ( ) ;
37- const [ searchValue , setSearchValue ] = useState ( "" )
3851
39- const elements = useSelector ( folderElementsSelector ) ;
52+ const element = useSelector ( folderElementsSelector ) ;
4053 const allFolders = useSelector ( foldersSelector ) ;
4154
4255 const folder = allFolders . filter ( ( f ) => f . folderId === folderId ) [ 0 ] || { } ;
@@ -47,16 +60,60 @@ export function FolderView() {
4760 } ,
4861 ] ) ;
4962
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 ] )
5598
5699 return (
57100 < >
58101 < 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+ />
60117 </ >
61118 ) ;
62119}
0 commit comments