Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit18e2917

Browse files
authored
Merge pull request#1374 from lowcoder-org/feature-pagination
Feature pagination
2 parents3defa5c +8354a3a commit18e2917

File tree

4 files changed

+52
-38
lines changed

4 files changed

+52
-38
lines changed

‎client/packages/lowcoder/src/pages/ApplicationV2/FolderView.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useDispatch, useSelector } from "react-redux";
22
import{useParams}from"react-router-dom";
33
import{HomeBreadcrumbType,HomeLayout}from"./HomeLayout";
44
import{useEffect,useState}from"react";
5-
import{ApplicationMeta,FolderMeta}from"../../constants/applicationConstants";
5+
import{ApplicationCategoriesEnum,ApplicationMeta,FolderMeta}from"../../constants/applicationConstants";
66
import{buildFolderUrl}from"../../constants/routesURL";
77
import{folderElementsSelector,foldersSelector}from"../../redux/selectors/folderSelector";
88
import{Helmet}from"react-helmet";
@@ -46,6 +46,7 @@ export function FolderView() {
4646
const[typeFilter,setTypeFilter]=useState<number>(0);
4747
const[modify,setModify]=useState(true);
4848
const[searchValue,setSearchValue]=useState("");
49+
const[categoryFilter,setCategoryFilter]=useState<ApplicationCategoriesEnum|"All">("All");
4950

5051
constdispatch=useDispatch();
5152

@@ -68,6 +69,7 @@ export function FolderView() {
6869
pageSize:pageSize,
6970
applicationType:ApplicationPaginationType[typeFilter],
7071
name:searchValues,
72+
category:categoryFilter==="All" ?"" :categoryFilter
7173
}).then(
7274
(data:any)=>{
7375
if(data.success){
@@ -80,7 +82,7 @@ export function FolderView() {
8082
}catch(error){
8183
console.error('Failed to fetch data:',error);
8284
}
83-
},[currentPage,pageSize,searchValues,typeFilter,modify]);
85+
},[currentPage,pageSize,searchValues,typeFilter,modify,categoryFilter]);
8486

8587
useEffect(()=>{
8688
if(searchValues!=="")
@@ -113,6 +115,7 @@ export function FolderView() {
113115
setTypeFilterPagination={setTypeFilter}
114116
setModify={setModify}
115117
modify={modify}
118+
setCategoryFilterPagination={setCategoryFilter}
116119
/>
117120
</>
118121
);

‎client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,9 @@ export interface HomeLayoutProps {
316316
searchValue?:string;
317317
setSearchValue?:any;
318318
setTypeFilterPagination?:any;
319+
setCategoryFilterPagination?:any;
320+
setIsCreated?:any;
321+
isCreated?:boolean;
319322
setModify?:any;
320323
modify?:boolean;
321324
}
@@ -334,10 +337,15 @@ export function HomeLayout(props: HomeLayoutProps) {
334337
setSearchValue,
335338
total,
336339
setTypeFilterPagination,
340+
setCategoryFilterPagination,
337341
setModify,
338-
modify
342+
modify,
343+
setIsCreated,
344+
isCreated
339345

340346
}=props;
347+
348+
341349
consthandlePageChange=(page:number)=>{
342350
setCurrentPage(page);
343351
};
@@ -429,15 +437,6 @@ export function HomeLayout(props: HomeLayoutProps) {
429437
}
430438
returntrue;
431439
})
432-
.filter((e)=>{
433-
// If "All" is selected, do not filter out any elements based on category
434-
if(categoryFilter==='All'||!categoryFilter){
435-
returntrue;
436-
}
437-
// Otherwise, filter elements based on the selected category
438-
return!e.folder&&e.category===categoryFilter.toString();
439-
})
440-
441440
.map((e)=>
442441
e.folder
443442
?{
@@ -469,7 +468,6 @@ export function HomeLayout(props: HomeLayoutProps) {
469468
}
470469
);
471470

472-
473471
constgetFilterMenuItem=(type:HomeResTypeEnum)=>{
474472
constIcon=HomeResInfo[type].icon;
475473
return{
@@ -546,17 +544,22 @@ export function HomeLayout(props: HomeLayoutProps) {
546544
getFilterMenuItem(HomeResTypeEnum.Application),
547545
getFilterMenuItem(HomeResTypeEnum.Module),
548546
...(mode!=="marketplace" ?[getFilterMenuItem(HomeResTypeEnum.Navigation),getFilterMenuItem(HomeResTypeEnum.MobileTabLayout)] :[]),
549-
...(mode!=="trash"&&mode!=="marketplace" ?[getFilterMenuItem(HomeResTypeEnum.Folder)] :[]),
547+
...(mode!=="trash"&&mode!=="marketplace"&&mode!=="folder"?[getFilterMenuItem(HomeResTypeEnum.Folder)] :[]),
550548
]}
551549
getPopupContainer={(node:any)=>node}
552550
suffixIcon={<ArrowSolidIcon/>}/>
553551
)}
554-
{mode==="view"&&
552+
{(mode==="view"||mode==="folder")&&
555553
<FilterDropdown
556554
style={{minWidth:"220px"}}
557555
variant="borderless"
558556
value={categoryFilter}
559-
onChange={(value:any)=>setCategoryFilter(valueasApplicationCategoriesEnum)}
557+
onChange={(value:any)=>{
558+
setCategoryFilter(valueasApplicationCategoriesEnum)
559+
setCategoryFilterPagination(valueasApplicationCategoriesEnum);
560+
}
561+
562+
}
560563
options={categoryOptions}
561564
// getPopupContainer={(node) => node}
562565
suffixIcon={<ArrowSolidIcon/>}
@@ -580,7 +583,7 @@ export function HomeLayout(props: HomeLayoutProps) {
580583
style={{width:"192px",height:"32px",margin:"0"}}
581584
/>
582585
{mode!=="trash"&&mode!=="marketplace"&&user.orgDev&&(
583-
<CreateDropdowndefaultVisible={showNewUserGuide(user)}mode={mode}setModify={setModify}modify={modify!}/>
586+
<CreateDropdowndefaultVisible={showNewUserGuide(user)}mode={mode}setModify={setIsCreated}modify={isCreated!}/>
584587
)}
585588
</OperationRightWrapper>
586589
</OperationWrapper>
@@ -667,7 +670,7 @@ export function HomeLayout(props: HomeLayoutProps) {
667670
?trans("home.projectEmptyCanAdd")
668671
:trans("home.projectEmpty")}
669672
</div>
670-
{mode!=="trash"&&mode!=="marketplace"&&user.orgDev&&<CreateDropdownmode={mode}setModify={setModify}modify={modify!}/>}
673+
{mode!=="trash"&&mode!=="marketplace"&&user.orgDev&&<CreateDropdownmode={mode}setModify={setIsCreated}modify={isCreated!}/>}
671674
</EmptyView>
672675
)}
673676
</>

‎client/packages/lowcoder/src/pages/ApplicationV2/HomeView.tsx

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Helmet } from "react-helmet";
55
import{trans}from"i18n";
66
import{useState,useEffect}from"react";
77
import{fetchFolderElements}from"@lowcoder-ee/util/pagination/axios";
8-
import{ApplicationMeta,FolderMeta}from"@lowcoder-ee/constants/applicationConstants";
8+
import{ApplicationCategoriesEnum,ApplicationMeta,FolderMeta}from"@lowcoder-ee/constants/applicationConstants";
99
import{ApplicationPaginationType}from"@lowcoder-ee/util/pagination/type";
1010

1111
interfaceElementsState{
@@ -21,26 +21,30 @@ export function HomeView() {
2121
const[searchValues,setSearchValues]=useState("");
2222
const[typeFilter,setTypeFilter]=useState<number>(0);
2323
const[modify,setModify]=useState(true);
24+
const[isCreated,setIsCreated]=useState(true);
25+
const[categoryFilter,setCategoryFilter]=useState<ApplicationCategoriesEnum|"All">("All");
26+
2427
useEffect(()=>{
25-
try{
26-
fetchFolderElements({
27-
pageNum:currentPage,
28-
pageSize:pageSize,
29-
applicationType:ApplicationPaginationType[typeFilter],
30-
name:searchValues,
31-
}).then(
32-
(data:any)=>{
33-
if(data.success){
34-
setElements({elements:data.data||[],total:data.total||1})
35-
}
36-
else
37-
console.error("ERROR: fetchFolderElements",data.error)
38-
}
39-
);
40-
}catch(error){
41-
console.error('Failed to fetch data:',error);
42-
}
43-
},[currentPage,pageSize,searchValues,typeFilter,modify]
28+
try{
29+
fetchFolderElements({
30+
pageNum:currentPage,
31+
pageSize:pageSize,
32+
applicationType:ApplicationPaginationType[typeFilter],
33+
name:searchValues,
34+
category:categoryFilter==="All" ?"" :categoryFilter
35+
}).then(
36+
(data:any)=>{
37+
if(data.success){
38+
setElements({elements:data.data||[],total:data.total||1})
39+
}
40+
else
41+
console.error("ERROR: fetchFolderElements",data.error)
42+
}
43+
);
44+
}catch(error){
45+
console.error('Failed to fetch data:',error);
46+
}
47+
},[currentPage,pageSize,searchValues,typeFilter,modify,categoryFilter,isCreated]
4448
);
4549

4650
useEffect(()=>{
@@ -79,6 +83,9 @@ export function HomeView() {
7983
setTypeFilterPagination={setTypeFilter}
8084
setModify={setModify}
8185
modify={modify}
86+
setCategoryFilterPagination={setCategoryFilter}
87+
setIsCreated={setIsCreated}
88+
isCreated={isCreated}
8289
/>
8390
</>
8491
);

‎client/packages/lowcoder/src/util/pagination/type.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export interface fetchFolderRequestType {
6161
pageSize?:number;
6262
name?:string;
6363
applicationType?:string;
64+
category?:string
6465
}
6566

6667
exportinterfacefetchDBRequestType{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp