diff --git a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx index 4ed3e0a3c8..189e147abc 100644 --- a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx +++ b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx @@ -45,11 +45,12 @@ type GroupPermissionProp = { currentUser: User; setModify?: any; modify?: boolean; + loading?: boolean; }; function GroupUsersPermission(props: GroupPermissionProp) { const { Column } = TableStyled; - const { group, orgId, groupUsers, currentUserGroupRole, currentUser , setModify, modify} = props; + const { group, orgId, groupUsers, currentUserGroupRole, currentUser, setModify, modify, loading } = props; const adminCount = groupUsers.filter((user) => isGroupAdmin(user.role)).length; const sortedGroupUsers = useMemo(() => { return [...groupUsers].sort((a, b) => { @@ -97,7 +98,7 @@ function GroupUsersPermission(props: GroupPermissionProp) { dataSource={sortedGroupUsers} rowKey="userId" pagination={false} - loading={groupUsers.length === 0} + loading={loading} > user.role === ADMIN_ROLE || user.role === SUPER_ADMIN_ROLE, ).length; @@ -149,7 +150,7 @@ function OrgUsersPermission(props: UsersPermissionProp) { dataSource={sortedOrgUsers} rowKey="userId" pagination={false} - loading={orgUsers.length === 0} + loading={loading} > ({ elements: [], total: 1, role: "" }); + const [elements, setElements] = useState({ elements: [], total: 0, role: "" }); const [group, setGrouop] = useState(); - const [orgMemberElements, setOrgMemberElements] = useState({ elements: [], total: 1 }) + const [orgMemberElements, setOrgMemberElements] = useState({ elements: [], total: 0 }) const [currentPage, setCurrentPage] = useState(1); const [pageSize, setPageSize] = useState(10); const [modify, setModify] = useState(false); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); const orgId = user.currentOrgId; const currentUser = useSelector(getUser); @@ -51,23 +53,36 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS ) useEffect( () => { - if (selectKey !== "users" && selectKey) + if (selectKey !== "users" && selectKey) { + setLoading(true); + setError(null); + fetchGroupUsrPagination( { - groupId:selectKey, + groupId: selectKey, pageNum: currentPage, pageSize: pageSize, } - ).then(result => { - if (result.success){ - setElements({elements: result.data || [], total: result.total || 1, role: result.visitorRole || ""}) - } - else - console.error("ERROR: fetchFolderElements", result.error) + ).then(result => { + setLoading(false); + + if (result.success) { + setElements({ + elements: result.data || [], + total: result.total || 0, + role: result.visitorRole || "" + }); + } else { + setError("Failed to load group users. Please try again."); } - ) - else - { + }).catch(err => { + setLoading(false); + setError("Failed to load group users. Please try again."); + }); + } else { + setLoading(true); + setError(null); + fetchOrgUsrPagination( { orgId: orgId, @@ -75,17 +90,22 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS pageSize: pageSize, } ).then(result => { - if (result.success){ - setOrgMemberElements({elements: result.data || [], total: result.total || 1}) - } - else - console.error("ERROR: fetchFolderElements", result.error) + setLoading(false); + if (result.success){ + setOrgMemberElements({ + elements: result.data || [], + total: result.total || 0 + }); + } + else { + setError("Failed to load organization users. Please try again."); } - ) + }).catch(err => { + setLoading(false); + setError("Failed to load organization users. Please try again."); + }); } - }, - [currentPage, pageSize, modify, selectKey] - ) + }, [currentPage, pageSize, modify, selectKey, orgId]); if (!orgId) { return null; @@ -93,15 +113,21 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS return ( + {error && ( +
+ {error} +
+ )} + {selectKey === "users" ? ( <> @@ -116,10 +142,10 @@ export default function PermissionSetting(props: {currentPageProp: number, pageS currentUser={currentUser} setModify={setModify} modify={modify} + loading={loading} /> - ) )}
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