Skip to content

Commit ebd91d2

Browse files
committed
[Fix]: infinite loading for Developers Group
1 parent 1fc4e6c commit ebd91d2

File tree

3 files changed

+56
-28
lines changed

3 files changed

+56
-28
lines changed

client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,12 @@ type GroupPermissionProp = {
4545
currentUser: User;
4646
setModify?: any;
4747
modify?: boolean;
48+
loading?: boolean;
4849
};
4950

5051
function GroupUsersPermission(props: GroupPermissionProp) {
5152
const { Column } = TableStyled;
52-
const { group, orgId, groupUsers, currentUserGroupRole, currentUser , setModify, modify} = props;
53+
const { group, orgId, groupUsers, currentUserGroupRole, currentUser, setModify, modify, loading } = props;
5354
const adminCount = groupUsers.filter((user) => isGroupAdmin(user.role)).length;
5455
const sortedGroupUsers = useMemo(() => {
5556
return [...groupUsers].sort((a, b) => {
@@ -97,7 +98,7 @@ function GroupUsersPermission(props: GroupPermissionProp) {
9798
dataSource={sortedGroupUsers}
9899
rowKey="userId"
99100
pagination={false}
100-
loading={groupUsers.length === 0}
101+
loading={loading}
101102
>
102103
<Column
103104
title={trans("memberSettings.nameColumn")}

client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@ type UsersPermissionProp = {
5858
currentUser: User;
5959
setModify?: any;
6060
modify?: boolean;
61+
loading?: boolean;
6162
};
6263

6364
function OrgUsersPermission(props: UsersPermissionProp) {
6465
const { Column } = TableStyled;
65-
const { orgId, orgUsers, currentUser , setModify, modify} = props;
66+
const { orgId, orgUsers, currentUser, setModify, modify, loading } = props;
6667
const adminCount = orgUsers.filter(
6768
(user) => user.role === ADMIN_ROLE || user.role === SUPER_ADMIN_ROLE,
6869
).length;
@@ -149,7 +150,7 @@ function OrgUsersPermission(props: UsersPermissionProp) {
149150
dataSource={sortedOrgUsers}
150151
rowKey="userId"
151152
pagination={false}
152-
loading={orgUsers.length === 0}
153+
loading={loading}
153154
>
154155
<Column
155156
title={trans("memberSettings.nameColumn")}

client/packages/lowcoder/src/pages/setting/permission/permissionDetail.tsx

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
2323

2424
const {currentPageProp, pageSizeProp} = props;
2525
const user = useSelector(getUser);
26-
const [elements, setElements] = useState<any>({ elements: [], total: 1, role: "" });
26+
const [elements, setElements] = useState<any>({ elements: [], total: 0, role: "" });
2727
const [group, setGrouop] = useState<OrgGroup>();
28-
const [orgMemberElements, setOrgMemberElements] = useState<any>({ elements: [], total: 1 })
28+
const [orgMemberElements, setOrgMemberElements] = useState<any>({ elements: [], total: 0 })
2929
const [currentPage, setCurrentPage] = useState(1);
3030
const [pageSize, setPageSize] = useState(10);
3131
const [modify, setModify] = useState(false);
32+
const [loading, setLoading] = useState(false);
33+
const [error, setError] = useState<string | null>(null);
3234

3335
const orgId = user.currentOrgId;
3436
const currentUser = useSelector(getUser);
@@ -51,57 +53,81 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
5153
)
5254

5355
useEffect( () => {
54-
if (selectKey !== "users" && selectKey)
56+
if (selectKey !== "users" && selectKey) {
57+
setLoading(true);
58+
setError(null);
59+
5560
fetchGroupUsrPagination(
5661
{
57-
groupId:selectKey,
62+
groupId: selectKey,
5863
pageNum: currentPage,
5964
pageSize: pageSize,
6065
}
61-
).then(result => {
62-
if (result.success){
63-
setElements({elements: result.data || [], total: result.total || 1, role: result.visitorRole || ""})
64-
}
65-
else
66-
console.error("ERROR: fetchFolderElements", result.error)
66+
).then(result => {
67+
setLoading(false);
68+
69+
if (result.success) {
70+
setElements({
71+
elements: result.data || [],
72+
total: result.total || 0,
73+
role: result.visitorRole || ""
74+
});
75+
} else {
76+
setError("Failed to load group users. Please try again.");
6777
}
68-
)
69-
else
70-
{
78+
}).catch(err => {
79+
setLoading(false);
80+
setError("Failed to load group users. Please try again.");
81+
});
82+
} else {
83+
setLoading(true);
84+
setError(null);
85+
7186
fetchOrgUsrPagination(
7287
{
7388
orgId: orgId,
7489
pageNum: currentPage,
7590
pageSize: pageSize,
7691
}
7792
).then(result => {
78-
if (result.success){
79-
setOrgMemberElements({elements: result.data || [], total: result.total || 1})
80-
}
81-
else
82-
console.error("ERROR: fetchFolderElements", result.error)
93+
setLoading(false);
94+
if (result.success){
95+
setOrgMemberElements({
96+
elements: result.data || [],
97+
total: result.total || 0
98+
});
99+
}
100+
else {
101+
setError("Failed to load organization users. Please try again.");
83102
}
84-
)
103+
}).catch(err => {
104+
setLoading(false);
105+
setError("Failed to load organization users. Please try again.");
106+
});
85107
}
86-
},
87-
[currentPage, pageSize, modify, selectKey]
88-
)
108+
}, [currentPage, pageSize, modify, selectKey, orgId]);
89109

90110
if (!orgId) {
91111
return null;
92112
}
93113

94114
return (
95115
<PermissionContent key={selectKey}>
116+
{error && (
117+
<div style={{ color: 'red', margin: '20px 0', textAlign: 'center' }}>
118+
{error}
119+
</div>
120+
)}
121+
96122
{selectKey === "users" ? (
97123
<>
98124
<UsersPermission
99125
orgId={orgId}
100-
// orgUsers={!orgMemberElements.elements.members ? [] : orgMemberElements.elements.members}
101126
orgUsers={orgMemberElements.elements}
102127
currentUser={currentUser}
103128
setModify={setModify}
104129
modify={modify}
130+
loading={loading}
105131
/>
106132
<PaginationComp setCurrentPage={setCurrentPage} setPageSize={setPageSize} currentPage={currentPage} pageSize={pageSize} total={orgMemberElements.total} />
107133
</>
@@ -116,10 +142,10 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS
116142
currentUser={currentUser}
117143
setModify={setModify}
118144
modify={modify}
145+
loading={loading}
119146
/>
120147
<PaginationComp setCurrentPage={setCurrentPage} setPageSize={setPageSize} currentPage={currentPage} pageSize={pageSize} total={elements.total} />
121148
</>
122-
123149
)
124150
)}
125151
</PermissionContent>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy