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)